Вопрос по matlab – Как найти сходство между двумя кривыми и оценка сходства?

7

У меня есть два набора данных (т, у1) и (т, у2). Эти наборы данных визуально выглядят одинаково, но их задержка по времени или сдвиг величины. Я хочу найти сходство между двумя кривыми (давая оценку сходства 1 для приблизительно одинаковых кривых и 0 для не похожих кривых). Некоторые кривые кажутся различными из-за колебаний в данных. Итак, я ищу метод, чтобы найти сходство между кривыми. Я уже попробовал команду градиента в Matlab, чтобы найти наклон кривой на каждом временном шаге и сравнил его. но это не дает мне удовлетворительных результатов. пожалуйста, кто-нибудь предложить мне метод, чтобы найти сходство между кривыми.

Заранее спасибо

enter image description here

Ваш Ответ

4   ответа
0
Kolmongrov Smirnov Test (kstest2 function in Matlab) Chi Square Test to measure similarity there is a measure called MIC: Maximal information coefficient. It quantifies the information shared between 2 data or curves.
0
3

ений является DTW (динамическое временное искажение)

3

signals скорее, чемcurves, Последнее я бы попытался параметризировать с помощью POLYFIT.

Если они действительно выглядят одинаково, но смещены во времени (и не смещены), то вы можете:

y1n=y1/norm(y1);
y2n=y2/norm(y2);
normratio=norm(y1)/norm(y2);
c=conv2(y1n,y2n,'same');
[val ind]=max(c);

ind укажет сдвиг времени иnormratio разница в величине. Оба могут быть использованы как функции для вашего показателя сходства. Я полагаю, однако, что ваши сигналы на самом деле изменяются не только по временному сдвигу или величине, и в этом случае лучше выбрать какой-либо параметр параметризации сигнала, а затем построить метрику по этим параметрам.

Не зная ничего о ваших данных, я сначала попробовал бы с AR (предполагая, что такие типичные вещи, как FFT или PRINCOMP не сработают).

Что вы подразумеваете под "(а не обернутым вокруг)"?

Похожие вопросы