Xcorr Acorr Demo

Beginner

This tutorial is from open-source community. Access the source code

Einführung

Zweck dieses Labors ist es, die Verwendung von Kreuzkorrelations- und Autokorrelationsdiagrammen mit der Python-Bibliothek Matplotlib zu demonstrieren. Kreuzkorrelation und Autokorrelation sind mathematische Werkzeuge, die zur Messung der Ähnlichkeit zwischen zwei Signalen verwendet werden. Die Kreuzkorrelation misst die Ähnlichkeit zwischen zwei verschiedenen Signalen, während die Autokorrelation die Ähnlichkeit zwischen einem Signal und einer zeitverschobenen Version desselben misst. Diese Werkzeuge werden häufig in der Signalverarbeitung, der Bildanalyse und der Zeitreihenanalyse eingesetzt.

Tipps für die VM

Nachdem der Start der VM abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

Zunächst müssen wir die erforderlichen Bibliotheken importieren. In diesem Lab verwenden wir NumPy und Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Zufällige Daten generieren

Als nächstes werden wir zwei Arrays mit zufälligen Daten mit NumPy generieren. Wir werden diese Arrays verwenden, um Kreuzkorrelation und Autokorrelation zu demonstrieren.

np.random.seed(19680801)
x, y = np.random.randn(2, 100)

Kreuzkorrelation plotten

Wir werden nun die Kreuzkorrelation zwischen den beiden Arrays mit der xcorr-Funktion in Matplotlib plotten.

fig, ax = plt.subplots()
ax.xcorr(x, y, usevlines=True, maxlags=50, normed=True, lw=2)
ax.grid(True)
plt.show()

Die xcorr-Funktion nimmt die folgenden Parameter entgegen:

  • x: das erste Datenarray
  • y: das zweite Datenarray
  • usevlines: boolesch, ob vertikale Linien von 0 bis zum Korrelationswert gezeichnet werden sollen
  • maxlags: Ganzzahl, die maximale Anzahl der Lags, für die die Korrelation berechnet werden soll
  • normed: boolesch, ob die Korrelationswerte normalisiert werden sollen
  • lw: Ganzzahl, die Linienbreite für das Diagramm

Autokorrelation plotten

Wir werden nun die Autokorrelation des x-Arrays mit der acorr-Funktion in Matplotlib plotten.

fig, ax = plt.subplots()
ax.acorr(x, usevlines=True, normed=True, maxlags=50, lw=2)
ax.grid(True)
plt.show()

Die acorr-Funktion nimmt die folgenden Parameter entgegen:

  • x: das Datenarray, für das die Autokorrelation berechnet werden soll
  • usevlines: boolesch, ob vertikale Linien von 0 bis zum Korrelationswert gezeichnet werden sollen
  • normed: boolesch, ob die Korrelationswerte normalisiert werden sollen
  • maxlags: Ganzzahl, die maximale Anzahl der Lags, für die die Korrelation berechnet werden soll
  • lw: Ganzzahl, die Linienbreite für das Diagramm

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Kreuzkorrelations- und Autokorrelationsplots in Python Matplotlib verwendet. Zunächst haben wir die erforderlichen Bibliotheken importiert, dann haben wir mit NumPy zufällige Daten generiert. Anschließend haben wir die Kreuzkorrelation und Autokorrelation der Daten mit den xcorr- und acorr-Funktionen in Matplotlib geplottet. Diese Werkzeuge sind nützlich, um die Ähnlichkeit zwischen zwei Signalen zu messen und werden häufig in der Signalverarbeitung, der Bildanalyse und der Zeitreihenanalyse verwendet.