|
|
Problem mit Kreuzkorrelation |
|
Q-Dog |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.02.2012, 18:31
Titel: Problem mit Kreuzkorrelation
|
|
Moin,
ich bin gerade dabei mit Matlab die Kreuzkorrelation zwischen zwei Signalen zu berechnen und bin dabei auf folgendes Problem gestoßen:
Angenommen, ich habe 2 Signale s1=sin(x) und s2=cos(x). Jetzt möchte ich anhand der Kreuzkorrelation bestimmen, um wie viel ich s2 verschieben muss, damit es möglich exakt mit s1 übereinstimmt (oder habe ich den Sinn der Kreuzkorrelation falsch verstanden?)
Schaue ich mir den Plot an, so ist das Maximum der Kreuzkorrelation bei x=440. Die Mitte liegt bei x=360. Also eine Verschiebung um 440-360=80.
Wie aber jeder weiß, ist cos um 90° zu sin verschoben und nicht um 80°.
Was mache ich falsch?
Gruß Q-Dog
|
|
|
|
|
Habakuk Tibatong |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 12.02.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.05.2012, 17:00
Titel:
|
|
Hallo,
damit xcorr annimmt, dass Du eine periodische Funktion hast, musst Du den Aufruf folgendermaßen machen:
Das verändert auch die ganze Kreuzkorrelationsfunktion, die beim Vergleichen eines nicht gefensterten (also als unendlich periodisch angenommenen) Sinus und Cosinus auch sinusförmig sein muss.
War sie aber vorher gar nicht, da der Algorithmus die Funktionen "s" und "c" nicht wie periodische Funktionen behandelt hat.
Ich hoffe Du kannst damit jetzt noch was anfangen.
Viele Grüße, Habakuk
|
|
|
Andidas |
Forum-Anfänger
|
|
Beiträge: 33
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.05.2012, 11:10
Titel:
|
|
Hallo Leute,
ich hab zu dieser auch eine Frage:
[c,lags2]=xcorr(y,x,20,'coeff');
Wenn ich die Option 'coeff' verwende, dann sollte doch eine Normierung auf den nullten Wert stattfinden, d.h. ich müsste doch eigentlich für Lags=0 immer den Wert 1 angezeigt bekommen. Möglicherweise hab ich das falsch verstanden.
|
|
|
Super8film |
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 13.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2013, 10:42
Titel:
|
|
theoretisch schon z.B. bei CW
Ne er müsste nicht nicht immer das Maximum sein. Ist ein diskretes Problems sozusagen.
Gibt mehrere Methoden z.B. durch Interpolation.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|