Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Correlación cruzada de una señal retardada con ruido

Este ejemplo muestra cómo utilizar la secuencia de correlación cruzada para detectar el retardo temporal en una secuencia corrompida por el ruido. La secuencia de salida es una versión retardada de la secuencia de entrada con ruido blanco gaussiano aditivo. Cree dos secuencias. Una secuencia es una versión retardada de la otra. El retardo es tres muestras. Añada ruido blanco N(0,0.32) a la señal retardada. Utilice la secuencia de correlación cruzada de muestra para detectar el desfase.

Calcule y represente las señales. Establezca la configuración predeterminada del generador de números aleatorios para obtener resultados reproducibles.

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 objects. Axes object 1 with title Input Sequence contains an object of type stem. Axes object 2 with title Output Sequence contains an object of type stem.

Obtenga la secuencia de correlación cruzada de muestra y utilice el valor absoluto máximo para estimar el desfase. Represente la secuencia de correlación cruzada de muestra. El valor máximo de la secuencia de correlación cruzada tiene lugar cuando el desfase es 3, según se espera.

[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 object. The axes object contains 2 objects of type stem. These objects represent Cross-correlation, Maximum at lag 3.

Confirme el resultado utilizando la función finddelay.

finddelay(x,y)
ans = 3

Consulte también

|