Forum: Digitale Signalverarbeitung / DSP / Machine Learning Korrelation zweier Signale


von Rank (Gast)


Lesenswert?

Guten Tag,

kennt jemand ein Programm wo 2 Signale eingestellt werden können (z.B. 
Sinus/Rechteck), diese dann in den Korrelator gehen und man das Ergebnis 
sieht (graphisch)?

MfG

von Jan K. (jan_k)


Lesenswert?

Matlab, scilab, scicos, octave, maxima bestimmt auch. Im Notfall auch 
ein C Programm. Fertige kenne ich nicht, aber zumindest die 
erstgenannten können das von Haus aus (und natürlich noch viel mehr...)

Schöne Grüße,
Jan

von mani (Gast)


Angehängte Dateien:

Lesenswert?

Rank schrieb:
> Guten Tag,
>
> kennt jemand ein Programm wo 2 Signale eingestellt werden können (z.B.
> Sinus/Rechteck), diese dann in den Korrelator gehen und man das Ergebnis
> sieht (graphisch)?
>
> MfG

Hier gibt es eine Kleinigkeit zur diskreten Faltung:
http://www.fernuni-hagen.de/lges/applets/i_d_f.shtml

Leider ist das Java Applet scheinbar schon etwas älter.
Muckt ziemlich, was die Sicherheitseinstellungen angeht.
Ich musste unter Start-->Configure Java-->Sicherheit auf Mittel stellen 
und den Browser frisch öffnen um das Applet zu starten.

Ansonsten kann ich  nur Jan K. zustimmen. Octave oder Matlab ist da auch 
sehr gut geeignet. Hier z.B. Mal die Faltung von zwei zeitlich 
verschobenen Rauschsignale:
1
clear all;
2
close all;
3
sigLen = 1000;                  %Laenge der Signale
4
5
x = 1:sigLen;                   %X Vektor erstellen
6
x2 = -sigLen+1:sigLen-1;            %X Vektor2 erstellen
7
y1 = rand(1, sigLen);           %Pseudozufallsvektor erstellen
8
y2 = circshift( y1, length(y1)/2 ); % Zweiten Vektor rotieren
9
cor = conv( y1, y2);            %Falten
10
11
%Plotten
12
h = figure('Name', 'Kreuzkorrelation zweier Signale');
13
subplot(2,1,1);
14
plot(x,y1,x,y2);
15
legend('Y1','Y2');
16
grid on;
17
subplot(2,1,2);
18
plot(x2, cor);
19
legend('Kreuzkorr');
20
grid on;

Ergebnis siehe PNG.

Grüße
Mani

von Michael W. (Gast)


Lesenswert?

Jan K. schrieb:
> Matlab, scilab, scicos, octave, maxima bestimmt auch.


Vielleicht sollte man auch die Python-Module NumPy und SciPy erwähnen, 
die zusammen mit matplotlib einen sehr guten Ersatz für matlab unter 
Python ergeben. Ist alles aber letztlich Geschmackssache.

von Rank (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe in dem Programm LabVIEW 2 Signale erzeugen lassen und damit 
eine Kreuzkorrelation durchgeführt.
Das sieht wie folgt aus (siehe Anhang)

Haut das rein optisch so hin vom Ergebnis?

von Jenaer (Gast)


Lesenswert?

Mit Scilab/SCICOS geht das gut, kostenlos und ohne Lizenzproblem auch 
daheim.

von Mike (Gast)


Lesenswert?

Rank schrieb:
> Haut das rein optisch so hin vom Ergebnis?

Über die Normierung würde ich noch mal nachdenken.
Um die Rechnung zu testen, gibt es Signale, die besser geeignet sind ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.