Forum: Digitale Signalverarbeitung / DSP / Machine Learning Kreuzkorrelation in Matlab


von mgiaco (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich Versuche eine Kreuzkorrelation in Matlab, es gilt zu Beweise 
das gil
cross(x1,x2) = iff(X1.*conj(X2)), habe zwei exp Funktionen genommen bin 
mir nicht sicher ob es daran liegt das das ergebnis nicht stimmt müsste 
aber schon oder nicht.

Was mache ich falsch?

Besten Dank

von gast (Gast)


Lesenswert?

schau mal in der hilfe unter "xcorr"

von g_ast (Gast)


Lesenswert?

cxx = xcorr (x, 'options')
x: Signalvektor der Laenge N
cxx: Ergebnisvektor der Laenge 2N-1
'options' = 'none' --> Standard, ohne Skalierung 1/N
= 'biased' --> Skalierung wie in Formel
= 'coeff ' --> Skalierung, so dass xx(0) = 1

von gast (Gast)


Lesenswert?

sry war autokorreloation, aber schau mal nach, mit anderen parametern 
hast damit auch kreuzkorrelation

von gast (Gast)


Lesenswert?

hm meinst du das ist ein skalierungsfehler?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Über die FFT bekommst du die zyklische Korrelation, siehe 
Beitrag "autocorrelation, matlab/octave". Um die "normale" 
Korrelation zu bekommen musst du zero padding machen.

von mgiaco (Gast)


Lesenswert?

okay vertehe ich nicht ganz, zero pading ==> Werte auf null setzten aber 
welche?

von mgiaco (Gast)


Lesenswert?

Okay, habe jetzt gelesen was mit zeropading gemeint ist aber wie mache 
ich das jetzt bei meinem Beispiel?

http://www.technick.net/public/code/cp_dpage.php?aiocp_dp=guide_dft_zero_padding

? bitte danke

von mgiaco (Gast)


Lesenswert?

Hallo Andreas

In dem einen Beitrag hast du geschrieben:

Korrelation(x, y) = Faltung(x, reverse(y)) = IDFT(DFT(x) * 
DFT(reverse(y)))

hm genau so habe ich es ja gemacht. Aber was verstehst du unter reverse 
(Werte flippen? ne verstehe ich nicht) ich habe konj. komplex genommen.

von mgiaco (Gast)


Lesenswert?

Habe es immer noch nicht geschaft, keinen Ahung was ich falsch mache. 
Niemand mehr einen Tipp für mich.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

reverse ist umdrehen, also x[t] = x[N-t]. Im DFT-Bereich entspricht das 
Umdrehen dem konjugiert komplexen.

von mgiaco (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Andreas,

Da habe ich ja doch noch Hoffnung danke für die Antwort.

Ja verstanden, aber das habe ich ja gemacht siehe m-file. Nur stimmt das 
Ergebniss nicht.

Die Korrelation ansich stimmt denke ich wenn ich es über die Faltung 
rechne kommt zumindestens das gleiche heraus. Nur wenn ich es über den 
Bildbereich rechnen kommt etwas falsches heraus.

Vielleicht mache ich was generell falsch. Ich mache eine 
Kreuzkorrelation von 2 gleichen Signalen.

Im Anhang auch noch der plot.

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.