Contenu principal

xcorr

Description

r = xcorr(x,y) renvoie la corrélation croisée de deux séquences à temps discret. La corrélation croisée mesure la similarité entre un vecteur x et des copies décalées (retardées) d’un vecteur y en fonction du décalage. Si x et y n’ont pas la même longueur, la fonction ajoutez des zéros à la fin du vecteur le plus court pour qu’il soit de même longueur que l’autre.

exemple

r = xcorr(x) renvoie la séquence d’autocorrélation de x. Si x est une matrice, r est une matrice dont les colonnes contiennent les séquences d’autocorrélation et de corrélation croisée pour toutes les combinaisons des colonnes de x.

exemple

r = xcorr(___,maxlag) limite la plage de décalage de -maxlag à maxlag pour l’une ou l’autre des syntaxes précédentes.

exemple

r = xcorr(___,scaleopt) spécifie également une option de normalisation pour la corrélation croisée ou l’autocorrélation. Toute autre option que 'none' (option par défaut) nécessite que x et y aient la même longueur.

exemple

[r,lags] = xcorr(___) renvoie également les décalages auxquels les corrélations ont été calculées.

exemple

Exemples

réduire tout

Créez un vecteur x et un vecteur y égal à x décalé de 5 éléments vers la droite. Calculez et tracez la corrélation croisée estimée de x et y. Le pic le plus élevé se produit à la valeur de décalage pour laquelle les éléments de x et y sont exactement identiques (-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.

Calculez et tracez l’autocorrélation estimée du vecteur x. Le pic le plus élevé se produit au décalage nul, quand x est exactement identique à lui-même.

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.

Calculez et tracez la corrélation croisée normalisée des vecteurs x et y avec un pic unitaire et spécifiez un décalage maximal 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.

Arguments d'entrée

réduire tout

Tableau en entrée, spécifié sous forme de vecteur, de matrice ou de tableau multidimensionnel. Si x est un tableau multidimensionnel, xcorr traite chacune des colonnes pour toutes les dimensions et renvoie chaque autocorrélation et corrélation croisée en tant que colonnes d’une matrice.

Types de données : single | double
Support des nombres complexes : Oui

Tableau en entrée, spécifié sous forme de vecteur.

Types de données : single | double
Support des nombres complexes : Oui

Décalage maximal, spécifié sous forme d’un scalaire entier. Si vous spécifiez maxlag, la séquence de corrélation croisée renvoyée est comprise entre -maxlag et maxlag. Si vous ne spécifiez pas maxlag, la plage de décalage est égale à 2N – 1 où N est la plus élevée des longueurs de x et y.

Types de données : single | double

Option de normalisation, spécifiée sous une des formes suivantes.

  • 'none' : corrélation croisée brute sans mise à l’échelle. 'none' est la seule option valide quand x et y n’ont pas la même longueur.

  • 'biased' : estimation biaisée de la corrélation croisée :

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

  • 'unbiased' : estimation non biaisée de la corrélation croisée :

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

  • 'normalized' ou 'coeff' : normalise la séquence pour que les autocorrélations à décalage nul soient égales à 1 :

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

Arguments de sortie

réduire tout

Corrélation croisée ou autocorrélation, renvoyée sous forme de vecteur ou de matrice.

Si x est une matrice M × N, xcorr(x) renvoie une matrice (2M – 1) × N2 avec les autocorrélations et corrélations croisées des colonnes de x. Si vous spécifiez maxlag, r a une taille de (2 × maxlag + 1) × N2.

Par exemple, si S contient trois colonnes S=(x1x2x3), le résultat de R = xcorr(S) est organisé comme suit :

R=(Rx1x1Rx1x2Rx1x3Rx2x1Rx2x2Rx2x3Rx3x1Rx3x2Rx3x3).

Indices de décalage, renvoyés sous forme de vecteur.

En savoir plus

réduire tout

Références

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

Capacités étendues

développer tout

Historique des versions

Introduit avant R2006a

développer tout

Voir aussi

| | |