Cierpię na znalezienie dobrego sposobu na porównanie (zmierzenie) podobieństwa między dwoma różnymi sygnałami. Nie chcę znaleźć opóźnienia jednego sygnału dla drugiego, ale chcę zobaczyć, jak są do siebie podobne. Na przykład mam następujące dwa sygnały, powiedzmy s1 ans s2. dwa sygnały wyglądają bardzo podobnie, jednak w jednym sygnale występuje nagły skok, który powoduje, że druga część sygnału (również dominująca) ma przesunięcie względem pierwszej części.zmierzyć dwa różne (wektor) podobieństwo sygnału
Kiedy używam krzyżowej kowariancji jak również wzajemnej korelacji, daje mi to bardzo słaby wynik, a mianowicie:
xcov(s1, s2, 0, 'coeff') ----> 0.2153
Jednak patrząc na dwóch sygnałów, możemy zobaczyć że są bardzo podobne. W rzeczywistości, jeśli biorąc krzyżowej kowariancji dwóch sygnałów tylko z próbki (50-> Koniec sygnału), wynik jest bardzo dobry:
xcov(s1(50:280), s2(50:280), 0, 'coeff') ----> 0.9666
więc myślę, że problem jest z powodu wielkiego skakania przy około próbki 25 (w czerwonym sygnale).
Moje pytania są następujące:
- Jak przezwyciężyć powyższy problem?
- Czy kowariancja krzyżowa (korelacja) jest dobrym sposobem pomiaru podobieństwa między dwoma sygnałami?
- Czy jest inny sposób na zrobienie tego?
Wielkie dzięki. Naprawdę doceniam każdą pomoc od Ciebie!
byłoby rozważyć pomiaru podobieństwa pomiędzy gradientem * * sygnałów? – Shai
Czy możesz użyć filtru średniej ruchomej do obliczenia wartości średniej na krótkim zasięgu, a następnie odjąć ją od sygnału en, a następnie sprawdzić podobieństwa? – Adriaan
Jeśli uważasz, że ten skok jest odstający, możesz wypróbować metody odstające od zewnątrz, takie jak RANSAC (tylko myśl ...) –