Перекрестная корреляция фазового Sine wave

Этот пример показывает, как использовать последовательность перекрестной корреляции для оценки задержки фазы между двумя синусоидами. Теоретическая перекрестная корреляционная последовательность двух синусоид с той же частотой также колеблется на этой частоте. Поскольку последовательность перекрестной корреляции выборки использует меньше и меньше выборок при больших лагах, последовательность перекрестной корреляции выборки также колеблется с той же частотой, но амплитуда затухает, когда задержка увеличивается.

Создайте две синусоиды с частотами 2π/10 рад/образец. Стартовая фаза одной синусоиды равна 0, в то время как стартовая фаза другой синусоиды является -π радианы. Добавить N(0,0.252) белый шум в синусоиду с задержкой фазы π радианы. Установите генератор случайных чисел в настройки по умолчанию для воспроизводимых результатов.

rng default

t = 0:99;
x = cos(2*pi*1/10*t);
y = cos(2*pi*1/10*t-pi)+0.25*randn(size(t));

Получите последовательность перекрестной корреляции для двух периодов синусоиды (10 выборки). Постройте график последовательности перекрестной корреляции и отметьте известную задержку между двумя синусоидами (5 выборки).

[xc,lags] = xcorr(y,x,20,'coeff');

stem(lags(21:end),xc(21:end),'filled')

hold on
plot([5 5],[-1 1])

ax = gca;
ax.XTick = 0:5:20;

Figure contains an axes. The axes contains 2 objects of type stem, line.

Вы видите, что последовательность перекрестной корреляции достигает пика в лаге 5, как и ожидалось, и колеблется с периодом 10 выборки.

См. также