Contenuto principale

xcorr

Correlazione incrociata

Descrizione

r = xcorr(x,y) restituisce la correlazione incrociata di due sequenze a tempo discreto. La correlazione incrociata misura la somiglianza tra un vettore x e le copie spostate (sfasate) di un vettore y in funzione dello sfasamento. Se x e y hanno lunghezze diverse, la funzione aggiunge degli zeri alla fine del vettore più corto in modo che abbia la stessa lunghezza dell'altro.

esempio

r = xcorr(x) restituisce la sequenza di autocorrelazione di x. Se x è una matrice, r è una matrice le cui colonne contengono le sequenze di autocorrelazione e di correlazione incrociata per tutte le combinazioni di colonne di x.

esempio

r = xcorr(___,maxlag) limita l'intervallo di sfasamento da -maxlag a maxlag per una delle sintassi precedenti.

esempio

r = xcorr(___,scaleopt) specifica inoltre un'opzione di normalizzazione per la correlazione incrociata o l'autocorrelazione. Qualsiasi opzione diversa da 'none' (predefinita) richiede che x e y abbiano la stessa lunghezza.

esempio

[r,lags] = xcorr(___) restituisce inoltre gli sfasamenti a cui vengono calcolate le correlazioni.

esempio

Esempi

comprimi tutto

Creare un vettore x e un vettore y che sia uguale a x spostato di 5 elementi verso destra. Calcolare e tracciare la correlazione incrociata stimata di x e y. Il picco maggiore si verifica al valore di sfasamento quando gli elementi di x e y coincidono esattamente (-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.

Calcolare e tracciare l'autocorrelazione stimata di un vettore x. Il picco maggiore si verifica con sfasamento zero, quando x corrisponde esattamente a sé stesso.

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.

Calcolare e tracciare la correlazione incrociata normalizzata dei vettori x e y con picco unitario e specificare uno sfasamento massimo 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.

Argomenti di input

comprimi tutto

Array di input, specificato come vettore, matrice o array multidimensionale. Se x è un array multidimensionale, xcorr opera colonna per colonna su tutte le dimensioni e restituisce ciascuna autocorrelazione e correlazione incrociata come colonne di una matrice.

Tipi di dati: single | double
Supporto numeri complessi:

Array di input, specificato come vettore.

Tipi di dati: single | double
Supporto numeri complessi:

Sfasamento massimo, specificato come scalare intero. Se si specifica maxlag, la sequenza di correlazione incrociata va da -maxlag a maxlag. Se non si specifica maxlag, l'intervallo di sfasamento è uguale a 2N – 1, dove N è la maggiore delle lunghezze di x e y.

Tipi di dati: single | double

Opzione di normalizzazione, specificata in uno dei seguenti modi.

  • 'none': correlazione incrociata grezza, non scalata. 'none' è l'unica opzione valida quando x e y hanno lunghezze diverse.

  • 'biased': stima distorta della correlazione incrociata:

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

  • 'unbiased': stima non distorta della correlazione incrociata:

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

  • 'normalized' o 'coeff': normalizza la sequenza in modo che le autocorrelazioni con zero sfasamento siano uguali a 1:

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

Argomenti di output

comprimi tutto

Correlazione incrociata o autocorrelazione, restituite come vettore o matrice.

Se x è una matrice M × N, xcorr(x) restituisce una matrice (2M – 1) × N2 con le autocorrelazioni e le correlazioni incrociate delle colonne di x. Se si specifica maxlag, r ha grandezza (2 × maxlag + 1) × N2.

Ad esempio, se S ha tre colonne S=(x1x2x3), il risultato di R = xcorr(S) è organizzato come

R=(Rx1x1Rx1x2Rx1x3Rx2x1Rx2x2Rx2x3Rx3x1Rx3x2Rx3x3).

Indici di sfasamento, restituiti come vettore.

Ulteriori informazioni

comprimi tutto

Riferimenti

[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.

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a

espandi tutto

Vedi anche

| | |