PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 zeitlichverchobene Signal an Muster vergleichen



semicolon
17.01.2007, 10:52
Hallo,
Ich suche eine Routine in C,
welche es ermöglicht die Muster (nur logisch 1 und 0) zweier zeitlichen Signale
zu vergleichen. Dabei ist ein Muster nicht 100% zum anderen gleich,
sondern es soll die zeitliche Verschiebung eruiert werden,
bei dem die Abweichung der zwei Signale am Kleinsten ist,
wenn man sie voneinander subtrahiert.
Hat jemand eine solche Routine schon mal gebraucht oder etwas ähnliches auf Lager?
Für Hilfe bin ich euch im voraus dankbar.

SprinterSB
17.01.2007, 12:37
Falls dir ein Ansatz hülft:

-1- Du merkst die alle Zeiten von Muster A und Muster B. A und B sind Verktoren mit n Elementen, d.h. A = (a_1, ..., a_n), B=analog.
-2- Die gesuchte Zeitdifferenz ist dann (Tr(A)-Tr(B))/n, wobei Tr die Spur (Trace) eines Vektors ist.

Die Spur ist einfach die Summe aller Komponenten, du musst also nur die Differenz der Arithmetischen Mittel über A und B bilden.

Was "am kleinsten" ist, ist davon abhängig, was man unter "Abweichung" versteht. Mein Verfahren liefert die kleinste Abweichung wenn man die Euklidische Metrik verwendet.

SprinterSB
17.01.2007, 12:42
EDIT. Du brauchst nichtmal alle Werte zu merken, es genügt ja Aufsummieren und Mitzählen. Hast du aber bestimmt schon selbst gesehen...

bL1nK
17.01.2007, 18:05
mh ich sag nur korrelation :D ein maß für die ähnlichkeit zweier signale ;)

Integral[ x(t) * y(t-to) dt ]

ogni42
18.01.2007, 09:22
http://de.wikipedia.org/wiki/Kreuzkorrelation

SprinterSB
18.01.2007, 10:20
Bei dem Ansatz mit Kreuzkorrelation brauch man dann nur noch die Minima des Integrals zu finden...

Dieser Weg ist auch der für euklidische Metrik (verwendet Standard-Skalarprodukt).