Перекрестная корреляция задержанного сигнала в шуме

Этот пример показывает, как использовать последовательность перекрестной корреляции для обнаружения временной задержки в последовательности, поврежденной шумом. Последовательность выхода является задержанной версией последовательности входа с аддитивным белым Гауссовым шумом. Создайте две последовательности. Одна последовательность является задержанной версией другой. Задержка составляет 3 выборки. Добавить N(0,0.32) белый шум к задержанному сигналу. Используйте выборочную последовательность перекрестной корреляции, чтобы обнаружить задержку.

Создайте и постройте график сигналов. Установите генератор случайных чисел в настройки по умолчанию для воспроизводимых результатов.

rng default

x = triang(20);
y = [zeros(3,1);x]+0.3*randn(length(x)+3,1);

subplot(2,1,1)
stem(x,'filled')
axis([0 22 -1 2])
title('Input Sequence')

subplot(2,1,2)
stem(y,'filled')
axis([0 22 -1 2])
title('Output Sequence')

Figure contains 2 axes. Axes 1 with title Input Sequence contains an object of type stem. Axes 2 with title Output Sequence contains an object of type stem.

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

[xc,lags] = xcorr(y,x);
[~,I] = max(abs(xc));

figure
stem(lags,xc,'filled')
hold on
stem(lags(I),xc(I),'filled')
hold off
legend(["Cross-correlation",sprintf('Maximum at lag %d',lags(I))])

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent Cross-correlation, Maximum at lag 3.

Подтвердите результат с помощью finddelay функция.

finddelay(x,y)
ans = 3

См. также

|

Для просмотра документации необходимо авторизоваться на сайте