Matplotlib.pyplot.specgram() in Python
-
Plotten eines Spektrogramms mit der Methode
matplotlib.pyplot.specgram()
-
Plotten des Spektrogramms mit der Methode
scipy.signal.spectrogram()
Dieses Tutorial erklärt, wie man Spektrogramme in Python mit den Methoden matplotlib.pyplot.specgram()
und scipy.signal.spectrogram()
plotten kann.
Wir können mit einem Spektrogramm Details über die Stärke eines Signals erhalten. Je dunkler die Farbe des Spektrogramms an einem Punkt ist, desto stärker ist das Signal an diesem Punkt.
Plotten eines Spektrogramms mit der Methode matplotlib.pyplot.specgram()
matplotlib.pyplot.specgram(x,
NFFT=None,
Fs=None,
Fc=None,
detrend=None,
window=None,
noverlap=None,
cmap=None,
xextent=None,
pad_to=None,
sides=None,
scale_by_freq=None,
mode=None,
scale=None,
vmin=None,
vmax=None, *,
data=None,
**kwargs)
Beispiel: Plotten des Spektrogramms mit der Methode matplotlib.pyplot.specgram()
import math
import numpy as np
import matplotlib.pyplot as plt
dt = 0.0001
w = 2
t = np.linspace(0, 5, math.ceil(5 / dt))
A = 20 * (np.sin(3 * np.pi * t))
plt.specgram(A, Fs=1)
plt.title("Spectrogram Using matplotlib.pyplot.specgram() method")
plt.show()
Ausgabe:
Es wird ein Spektrogramm für die Funktion A=20sin(3*np.pi*t)
mit Hilfe der Methode matplotlib.pyplot.specgram()
erstellt. Das Argument fs
in der Methode stellt die Abtastfrequenz dar.
Plotten des Spektrogramms mit der Methode scipy.signal.spectrogram()
import math
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
dt = 0.0001
w = 2
t = np.linspace(0, 5, math.ceil(5 / dt))
A = 2 * (np.sin(1 * np.pi * 300 * t))
f, t, Sxx = signal.spectrogram(A, fs=1, nfft=514)
plt.pcolormesh(t, f, Sxx)
plt.ylabel("Frequency")
plt.xlabel("Time")
plt.title("Spectrogram Using scipy.signal.spectrogram() method")
plt.show()
Ausgabe:
Es wird ein Spektrogramm für die Funktion A=2sin(300*np.pi*t)
mit der Methode scipy.signal.spectrogram()
erstellt. Das Argument fs
in der Methode steht für die Abtastfrequenz und ntft
für die Länge der verwendeten FFT
.
Die Methode gibt drei Werte f
, t
und Sxx
zurück. f
repräsentiert das Array der Abtastfrequenzen, t
repräsentiert das Array der Abtastzeiten und Sxx
repräsentiert das Spektrogramm von A
.
Diese Methode generiert keinen Spektrogrammplot des Eingangssignals. Wir können matplotlib.pyplot.colormesh()
verwenden, um die Abbildung zu erzeugen.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn