Matplotlib.pyplot.specgram() en Python
-
Tracer un spectrogramme en utilisant la méthode
matplotlib.pyplot.specgram()
-
Tracez le spectrogramme en utilisant la méthode
scipy.signal.spectrogram()
Ce tutoriel explique comment nous pouvons tracer des spectrogrammes en Python en utilisant les méthodes matplotlib.pyplot.specgram()
et scipy.signal.spectrogram()
.
Nous pouvons obtenir des détails sur la force d’un signal en utilisant un spectrogramme. Plus la couleur du spectrogramme est sombre en un point, plus le signal est fort en ce point.
Tracer un spectrogramme en utilisant la méthode 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)
Exemple : Tracer un spectrogramme en utilisant la méthode 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()
Production :
Il crée un spectrogramme pour la fonction A=20sin(3*np.pi*t)
en utilisant la méthode matplotlib.pyplot.specgram()
. L’argument fs
dans la méthode représente la fréquence d’échantillonnage.
Tracez le spectrogramme en utilisant la méthode 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()
Production :
Il crée un spectrogramme pour la fonction A=2sin(300*np.pi*t)
en utilisant la méthode scipy.signal.spectrogram()
. L’argument fs
dans la méthode représente la fréquence d’échantillonnage et ntft
représente la longueur du FFT
utilisé.
La méthode retourne trois valeurs f
, t
et Sxx
. f
représente le tableau des fréquences d’échantillonnage, t
représente le tableau des temps d’échantillonnage et Sxx
représente le spectrogramme de A
.
Cette méthode ne génère pas le tracé du spectrogramme du signal d’entrée. Nous pouvons utiliser matplotlib.pyplot.colormesh()
pour générer la figure.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn