В этом примере показано, как использовать последовательность взаимной корреляции, чтобы обнаружить задержку поврежденной шумом последовательности. Выходная последовательность является задержанной версией входной последовательности с аддитивным белым Гауссовым шумом. Создайте две последовательности. Одна последовательность является задержанной версией другого. Задержка является 3 выборками. Добавление белый шум к задержанному сигналу. Используйте демонстрационную последовательность взаимной корреляции, чтобы обнаружить задержку.
Создайте и постройте сигналы. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов.
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')
Получите демонстрационную последовательность взаимной корреляции и используйте максимальное абсолютное значение, чтобы оценить задержку. Постройте демонстрационную последовательность взаимной корреляции.
[xc,lags] = xcorr(y,x); [~,I] = max(abs(xc)); figure stem(lags,xc,'filled') legend(sprintf('Maximum at lag %d',lags(I))) title('Sample Cross-Correlation Sequence')
Максимальное значение последовательности взаимной корреляции происходит в задержке 3 как ожидалось.