У меня есть некоторые синтетические c данные сигнала для взаимной корреляции, прежде чем перейти к реальным данным, но функция xcorr возвращает нечетный результат.
Я добавил задержку на любой старт (delay = 100 ) или конец соответствующих наборов данных, которые имеют одинаковый размер (2101 x 1 double), и поместите их через xcorr, который возвратил массив (4201 x 1 double).
Результат содержит NaN между строками 101 и 2205, а затем эффект замедления после этого начинается в порядке х10 ^ 5. Теперь я приложил фотографии результата
Может кто-нибудь предложить несколько советов о том, как исправить то, что я пытаюсь сделать? Я ожидаю, что смогу построить результат и увидеть всплеск задержки, которую я установил.
Спасибо
РЕДАКТИРОВАТЬ:
Краткий пример кода
X = [-4.99 -0.298 4.95 12.06 15.76 18.86 19.00 17.82 14.35 11.77 6.71 0.80 -5.07 -11.79 -15.34 -18.60 -18.56 -19.31 -14.37 -11.51 -5.04];
Y = [14.13 18.48 7.53 -3.41 -8.41 -13.40 -15.37 -17.34 -16.83 -16.33 -12.21 -8.09 -8.80 -9.52 3.90 17.31 17.52 17.72 17.73 17.75 16.90];
N = length(X);
delay = 2;
% set up two new arrays which will have random noise at ends
Xx = zeros(N+delay,1);
Yx = zeros(N+delay,1);
for i=1:N+delay
if i<=delay
Xx(i) = rand;
elseif i>delay
Xx(i) = X(i-delay);
end
end
for i=1:N+delay
if i<=N
Yx(i) = Y(i);
elseif i>N
Yx(i) = rand;
end
end
C = xcorr(Xx,Yx);