Contenido principal

xcorr

Correlación cruzada

Descripción

r = xcorr(x,y) devuelve la correlación cruzada de dos secuencias de tiempo diferenciado. La correlación cruzada mide la similitud entre un vector x y las copias desplazadas (desfasadas) de un vector y como función del desfase. Si x e y tienen longitudes diferentes, la función añade ceros al final del vector más corto para que tenga la misma longitud que el otro.

ejemplo

r = xcorr(x) devuelve la secuencia de autocorrelación de x. Si x es una matriz, r es una matriz cuyas columnas contienen las secuencias de autocorrelación y de correlación cruzada para todas las combinaciones de las columnas de x.

ejemplo

r = xcorr(___,maxlag) limita el rango de desfase de -maxlag a maxlag para cualquiera de las sintaxis anteriores.

ejemplo

r = xcorr(___,scaleopt) también especifica una opción de normalización para la correlación cruzada o la autocorrelación. Cualquier opción que no sea 'none' (la opción predeterminada) requiere que x e y tengan la misma longitud.

ejemplo

[r,lags] = xcorr(___) también devuelve los desfases en los que se calculan las correlaciones.

ejemplo

Ejemplos

contraer todo

Cree un vector x y un vector y que sea igual a x desplazado 5 elementos a la derecha. Calcule y represente la correlación cruzada estimada de x e y. El mayor pico se produce en el valor de desfase cuando los elementos de x e y coinciden exactamente (-5).

n = 0:15;
x = 0.84.^n;
y = circshift(x,5);
[c,lags] = xcorr(x,y);
stem(lags,c)

Figure contains an axes object. The axes object contains an object of type stem.

Calcule y represente la autocorrelación estimada de un vector x. El mayor pico se produce en el desfase cero, cuando x coincide exactamente consigo mismo.

n = 0:15;
x = 0.84.^n;
[c,lags] = xcorr(x);
stem(lags,c)

Figure contains an axes object. The axes object contains an object of type stem.

Calcule y represente la correlación cruzada normalizada de los vectores x e y con un pico de unidad y especifique un desfase máximo de 10.

n = 0:15;
x = 0.84.^n;
y = circshift(x,5);
[c,lags] = xcorr(x,y,10,'normalized');
stem(lags,c)

Figure contains an axes object. The axes object contains an object of type stem.

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector, matriz o arreglo multidimensional. Si x es un arreglo multidimensional, xcorr opera por columnas en todas las dimensiones y devuelve cada autocorrelación y correlación cruzada como las columnas de una matriz.

Tipos de datos: single | double
Soporte de números complejos:

Arreglo de entrada, especificado como vector.

Tipos de datos: single | double
Soporte de números complejos:

Desfase máximo, especificado como escalar entero. Si se especifica maxlag, la secuencia de correlación cruzada que se devuelve oscila entre -maxlag y maxlag. Si no se especifica maxlag, el rango de desfase es igual a 2N – 1, donde N es la mayor de las longitudes de x e y.

Tipos de datos: single | double

Opción de normalización, especificada como una de las siguientes opciones.

  • 'none': correlación cruzada sin procesar ni escalar. 'none' es la única opción válida cuando x e y tienen longitudes diferentes.

  • 'biased': estimación sesgada de la correlación cruzada:

    R^xy,biased(m)=1NR^xy(m).

  • 'unbiased': estimación no sesgada de la correlación cruzada:

    R^xy,unbiased(m)=1N|m|R^xy(m).

  • 'normalized' o 'coeff': normaliza la secuencia para que las autocorrelaciones en el desfase cero sean iguales a 1:

    R^xy,coeff(m)=1R^xx(0)R^yy(0)R^xy(m).

Argumentos de salida

contraer todo

Correlación cruzada o autocorrelación, devuelta como vector o matriz.

Si x es una matriz M × N, xcorr(x) devuelve una matriz (2M – 1) × N2 con las autocorrelaciones y correlaciones cruzadas de las columnas de x. Si especifica maxlag, r tiene el tamaño (2 × maxlag + 1) × N2.

Por ejemplo, si S tiene tres columnas, S=(x1x2x3), el resultado de R = xcorr(S) se organiza como

R=(Rx1x1Rx1x2Rx1x3Rx2x1Rx2x2Rx2x3Rx3x1Rx3x2Rx3x3).

Índices de desfase, devueltos como vector.

Más acerca de

contraer todo

Referencias

[1] Buck, John R., Michael M. Daniel, and Andrew C. Singer. Computer Explorations in Signals and Systems Using MATLAB®. 2nd Edition. Upper Saddle River, NJ: Prentice Hall, 2002.

[2] Stoica, Petre, and Randolph Moses. Spectral Analysis of Signals. Upper Saddle River, NJ: Prentice Hall, 2005.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | |