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 Datenarrayy: das zweite Datenarrayusevlines: boolesch, ob vertikale Linien von 0 bis zum Korrelationswert gezeichnet werden sollenmaxlags: Ganzzahl, die maximale Anzahl der Lags, für die die Korrelation berechnet werden sollnormed: boolesch, ob die Korrelationswerte normalisiert werden sollenlw: 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 sollusevlines: boolesch, ob vertikale Linien von 0 bis zum Korrelationswert gezeichnet werden sollennormed: boolesch, ob die Korrelationswerte normalisiert werden sollenmaxlags: Ganzzahl, die maximale Anzahl der Lags, für die die Korrelation berechnet werden solllw: 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.