/ / Нормализиране на кръстосана корелация с [-1,1] за сигнали с различна дължина - matlab, нормализация, кръстосана корелация

Нормализиране на кръстосана корелация спрямо [-1,1] за сигнали с различна дължина - matlab, нормализация, кръстосана корелация

Имам следния код заизчисляване на кръстосана корелация между сигнали. Визуално сигналите се свързват много добре. Сигналите са с различна дължина, но и двете имат процент на вземане на проби от 100 Hz. Има сигнали между сигналите (наречени timeDiff по-долу).

  [acor,lag] = xcorr(signal1,signal2);
[cor,I] = max(abs(acor));
lagDiff = lag(I);
timeDiff = lagDiff/100;
fprintf("Correlation = %0.5f n",cor);

Аз получавам корелация от 6239.06131.Как мога да нормализирам това на -1 и 1? Защото в противен случай е трудно да се интерпретира.

Отговори:

1 за отговор № 1

Следване на документацията https://it.mathworks.com/help/signal/ref/xcorr.html

Има опцията за нормализиране на функцията xcorr

[acor,lag] = xcorr(signal1,signal2,"coeff");

че "нормализира последователността, така чеавтокорелати при нулево закъснение равно на 1 ".Обовката" coeff "дава стойност само 1 или -1, ако дадено времево отместване (lag) води до перфектна положителна или отрицателна връзка на две серии.