Я страдаю в поиске хорошего способа сравнить (измерить) сходство между двумя разными сигналами. Я не хочу находить задержку времени одного сигнала другому, но я хочу посмотреть, как они похожи друг на друга. Например, у меня есть следующие два сигнала, скажем s1 ans s2. два сигнала выглядят очень похожими, однако в одном сигнале происходит внезапный скачок, который приводит к тому, что вторая часть сигнала (также доминирующая) имеет смещение по сравнению с первой частью.Измерение двух разных (векторных) сигналов сходства
Когда я использую кросс-ковариации, а также кросс-корреляции, это дает мне очень плохой результат, а именно:
xcov(s1, s2, 0, 'coeff') ----> 0.2153
Однако, глядя на двух сигналов, мы можем видеть что они очень похожи. В самом деле, если принимать перекрестные ковариации двух сигналов только от образца (50-> конец сигнала), то результат будет очень хороший:
xcov(s1(50:280), s2(50:280), 0, 'coeff') ----> 0.9666
Так я думаю, что проблема связана с большими прыжками около образца 25 (в красном сигнале).
Мои вопросы:
- Как преодолеть вышеуказанную проблему?
- Является ли кросс-ковариация (корреляция) хорошим способом измерения сходства между двумя сигналами?
- Есть ли другой способ сделать это?
Большое спасибо. Я очень ценю любую помощь от вас!
Вы бы измерения подобия между * градиентом * сигналов? – Shai
Можете ли вы использовать фильтр скользящих средних для вычисления среднего значения в течение короткого диапазона, а затем вычесть из сигнала en, а затем проверить сходство? – Adriaan
Если вы считаете, что прыжок является изгоем, вы можете попробовать outlier методы удаления, такие как RANSAC (просто мысль ...) –