Hauptinhalt

xcorr

Kreuzkorrelation

Beschreibung

r = xcorr(x,y) gibt die Kreuzkorrelation zweier zeitdiskreter Sequenzen zurück. Die Kreuzkorrelation misst die Ähnlichkeit zwischen einem Vektor x und verschobenen (verzögerten) Kopien eines Vektors y als Funktion der Verzögerung. Wenn x und y unterschiedliche Längen aufweisen, hängt die Funktion Nullen an das Ende des kürzeren Vektors an, sodass er dieselbe Länge wie der andere Vektor hat.

Beispiel

r = xcorr(x) gibt die Autokorrelationssequenz von x zurück. Wenn x eine Matrix ist, ist r eine Matrix, deren Spalten die Autokorrelations- und Kreuzkorrelationssequenzen für alle Kombinationen der Spalten von x enthalten.

Beispiel

r = xcorr(___,maxlag) begrenzt den Verzögerungsbereich in den vorstehenden Syntaxen von -maxlag bis maxlag.

Beispiel

r = xcorr(___,scaleopt) gibt zudem eine Normalisierungsoption für die Kreuzkorrelation oder Autokorrelation an. Eine andere Option als 'none' (Standardeinstellung) erfordert, dass x und y dieselbe Länge aufweisen.

Beispiel

[r,lags] = xcorr(___) gibt zudem die Verzögerungen zurück, bei denen die Korrelationen berechnet werden.

Beispiel

Beispiele

alle reduzieren

Erstellen Sie einen Vektor x und einen Vektor y, der x nach Verschiebung um fünf Elemente nach rechts entspricht. Berechnen und plotten Sie die geschätzte Kreuzkorrelation von x und y. Die größte Spitze tritt bei dem Verzögerungswert auf, wenn die Elemente x und y sich präzise entsprechen (-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.

Berechnen und plotten Sie die geschätzte Autokorrelation eines Vektors x. Die größte Spitze tritt bei Null Verzögerung auf, wenn x exakt sich selbst entspricht.

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.

Berechnen und plotten Sie die normalisierte Kreuzkorrelation der Vektoren x und y mit Spitze Einselement und geben Sie eine maximale Verzögerung von 10 an.

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.

Eingabeargumente

alle reduzieren

Eingabearray, angegeben als Vektor, Matrix oder mehrdimensionales Array. Wenn x ein mehrdimensionales Array ist, operiert xcorr spaltenweise über alle Dimensionen hinweg und gibt jede Autokorrelation und Kreuzkorrelation als Spalten einer Matrix zurück.

Datentypen: single | double
Unterstützung komplexer Zahlen: Ja

Eingabearray, angegeben als Vektor.

Datentypen: single | double
Unterstützung komplexer Zahlen: Ja

Maximale Verzögerung, angegeben als ganzzahliger Skalar. Wenn Sie maxlag angeben, reicht die zurückgegebene Kreuzkorrelationssequenz von -maxlag bis maxlag. Wenn Sie maxlag nicht angeben, entspricht der Verzögerungsbereich 2N – 1, wobei N die größere Länge von x und y ist.

Datentypen: single | double

Normalisierungsoption, angegeben als eine der folgenden Optionen:

  • 'none' – Nicht skalierte Kreuzkorrelation. 'none' ist die einzige gültige Option, wenn x und y unterschiedliche Längen aufweisen.

  • 'biased' – Verzerrte Schätzung der Kreuzkorrelation:

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

  • 'unbiased' – Unverzerrte Schätzung der Kreuzkorrelation:

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

  • 'normalized' oder 'coeff' – Normalisiert die Sequenz, sodass die Autokorrelationen bei null Verzögerung 1 entsprechen:

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

Ausgabeargumente

alle reduzieren

Kreuzkorrelation oder Autokorrelation, zurückgegeben als Vektor oder Matrix.

Wenn x eine M × N-Matrix ist, gibt xcorr(x) eine (2M – 1) × N2-Matrix mit den Autokorrelationen und Kreuzkorrelationen der Spalten von x zurück. Wenn Sie maxlag angeben, weist r die Größe (2 x maxlag + 1) x N2 auf.

Wenn S beispielsweise drei Spalten S=(x1x2x3) aufweist, wird das Ergebnis von R = xcorr(S) als

R=(Rx1x1Rx1x2Rx1x3Rx2x1Rx2x2Rx2x3Rx3x1Rx3x2Rx3x3).

organisiert.

Verzögerungsindizes, zurückgegeben als Vektor.

Mehr über

alle reduzieren

Referenzen

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

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern

Siehe auch

| | |