Ich leide daran, einen guten Weg zu finden, die Ähnlichkeit zwischen zwei verschiedenen Signalen zu vergleichen (zu messen). Ich möchte nicht die Verzögerung eines Signals zum anderen finden, aber ich möchte sehen, wie sie einander ähnlich sind. Zum Beispiel habe ich die folgenden zwei Signale, sagen wir s1 ans s2. die beiden Signale sehen sehr ähnlich aus, jedoch gibt es in einem Signal einen plötzlichen Sprung, der dazu führt, dass der zweite Teil des Signals (auch der dominante) einen Versatz gegenüber dem ersten Teil aufweist.messen zwei verschiedene (Vektor-) Signalähnlichkeit
Als ich die Kreuzkovarianz sowie Kreuzkorrelation verwenden, ist es mir ein sehr schlechtes Ergebnis gibt, nämlich:
xcov(s1, s2, 0, 'coeff') ----> 0.2153
jedoch bei den beiden Signalen suchen, können wir sehen, dass sie sich sehr ähnlich sind. In der Tat, wenn die Kreuzkovarianz der beiden Signale nur von Probenentnahme (50-> das Ende des Signals), ist das Ergebnis sehr gut:
xcov(s1(50:280), s2(50:280), 0, 'coeff') ----> 0.9666
Also ich denke, das Problem auf die großen Springen gebühren um die Probe 25 herum (im roten Signal).
Meine Fragen sind:
- Wie das obige Problem zu überwinden?
- Ist die Kreuzkovarianz (Korrelation) ein guter Weg, um die Ähnlichkeit zwischen zwei Signalen zu messen?
- Gibt es einen anderen Weg, dies zu tun?
Vielen Dank. Ich schätze jede Hilfe von Ihnen!
würden Sie als die Ähnlichkeit zwischen dem Gradienten * Messung * der Signale? – Shai
Können Sie einen Filter mit gleitendem Durchschnitt verwenden, um einen Mittelwert über eine kurze Entfernung zu berechnen, dann subtrahieren Sie ihn vom Signal und dann nach Ähnlichkeiten? – Adriaan
Wenn Sie diesen Sprung als einen Ausreißer betrachten, können Sie Ausreißer entfernen Methoden wie RANSAC versuchen (nur ein Gedanke ...) –