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)[Quelle]#

Plottet ein Spektrogramm.

Berechnet und plottet ein Spektrogramm der Daten in x. Die Daten werden in Segmente der Länge NFFT aufgeteilt und das Spektrum jedes Segments wird berechnet. Die Fensterfunktion window wird auf jedes Segment angewendet, und die Überlappung jedes Segments wird mit noverlap angegeben. Das Spektrogramm wird als Kolormap (mittels imshow) geplottet.

Parameter:
x1-D-Array oder Sequenz

Array oder Sequenz, die die Daten enthält.

Fsfloat, Standard: 2

Die Abtastfrequenz (Samples pro Zeiteinheit). Sie wird zur Berechnung der Fourier-Frequenzen, freqs, in Zyklen pro Zeiteinheit verwendet.

windowaufrufbar oder ndarray, Standard: window_hanning

Eine Funktion oder ein Vektor der Länge NFFT. Zur Erstellung von Fenstervektoren siehe window_hanning, window_none, numpy.blackman, numpy.hamming, numpy.bartlett, scipy.signal, scipy.signal.get_window usw. Wenn eine Funktion als Argument übergeben wird, muss sie ein Datensegment als Argument nehmen und die gefensterte Version des Segments zurückgeben.

sides{'default', 'onesided', 'twosided'}, optional

Welche Seiten des Spektrums zurückgegeben werden sollen. 'default' ist einseitig für reelle Daten und zweiseitig für komplexe Daten. 'onesided' erzwingt die Rückgabe eines einseitigen Spektrums, während 'twosided' zweiseitig erzwingt.

pad_toint, optional

Die Anzahl der Punkte, auf die das Datensegment bei der Durchführung der FFT aufgefüllt wird. Dies kann sich von NFFT unterscheiden, welches die Anzahl der verwendeten Datenpunkte angibt. Obwohl dies die tatsächliche Auflösung des Spektrums nicht erhöht (der minimale Abstand zwischen auflösbaren Spitzen), kann es mehr Punkte im Diagramm ergeben und somit mehr Details ermöglichen. Dies entspricht dem Parameter n im Aufruf von fft. Der Standardwert ist None, was pad_to gleich NFFT setzt.

NFFTint, Standard: 256

Die Anzahl der Datenpunkte, die in jedem Block für die FFT verwendet werden. Eine Zweierpotenz ist am effizientesten. Dies sollte NICHT zur Nullauffüllung verwendet werden, da die Skalierung des Ergebnisses sonst falsch ist; verwenden Sie stattdessen pad_to dafür.

detrend{'none', 'mean', 'linear'} oder aufrufbar, Standard: 'none'

Die Funktion, die auf jedes Segment angewendet wird, bevor die FFT berechnet wird, und die dazu dient, den Mittelwert oder den linearen Trend zu entfernen. Im Gegensatz zu MATLAB, wo der Parameter detrend ein Vektor ist, ist er in Matplotlib eine Funktion. Das Modul mlab definiert detrend_none, detrend_mean und detrend_linear, aber Sie können auch eine benutzerdefinierte Funktion verwenden. Sie können auch einen String verwenden, um eine der Funktionen auszuwählen: 'none' ruft detrend_none auf. 'mean' ruft detrend_mean auf. 'linear' ruft detrend_linear auf.

scale_by_freqbool, Standard: True

Ob die resultierenden Dichtewerte mit der Skalierungsfrequenz skaliert werden sollen, was die Dichte in Einheiten von 1/Hz liefert. Dies ermöglicht die Integration über die zurückgegebenen Frequenzwerte. Der Standardwert ist True für MATLAB-Kompatibilität.

mode{'default', 'psd', 'magnitude', 'angle', 'phase'}

Welche Art von Spektrum verwendet werden soll. Standard ist 'psd' (Leistungsdichtespektrum). 'magnitude' gibt das Amplitudenspektrum zurück. 'angle' gibt das Phasenspektrum ohne Entfaltung zurück. 'phase' gibt das Phasenspektrum mit Entfaltung zurück.

noverlapint, default: 128

Die Anzahl der überlappenden Punkte zwischen den Blöcken.

scale{'default', 'linear', 'dB'}

Die Skalierung der Werte im spec. 'linear' bedeutet keine Skalierung. 'dB' gibt die Werte in dB-Skala zurück. Wenn mode 'psd' ist, sind dies dB-Leistung (10 * log10). Andernfalls sind dies dB-Amplitude (20 * log10). 'default' ist 'dB', wenn mode 'psd' oder 'magnitude' ist, und ansonsten 'linear'. Dies muss 'linear' sein, wenn mode 'angle' oder 'phase' ist.

Fcint, Standard: 0

Die Mittenfrequenz von x, die die x-Bereiche des Plots versetzt, um den Frequenzbereich widerzuspiegeln, der bei der Erfassung eines Signals verwendet wird, und das dann gefiltert und auf Basisband heruntergetastet wird.

cmapColormap, Standard: rcParams["image.cmap"] (Standard: 'viridis')
xextentNone oder (xmin, xmax)

Die Ausdehnung des Bildes entlang der x-Achse. Der Standardwert setzt xmin auf den linken Rand des ersten Intervalls (spectrum-Spalte) und xmax auf den rechten Rand des letzten Intervalls. Beachten Sie, dass bei noverlap>0 die Breite der Intervalle kleiner ist als die der Segmente.

dataindizierbares Objekt, optional

Wenn angegeben, akzeptieren die folgenden Parameter auch einen String s, der als data[s] interpretiert wird, wenn s ein Schlüssel in data ist

x

vmin, vmaxfloat, optional

vmin und vmax definieren den Datenbereich, den die Kolormap abdeckt. Standardmäßig deckt die Kolormap den gesamten Wertebereich der Daten ab.

**kwargs

Zusätzliche Schlüsselwortargumente werden an imshow weitergegeben, welche das Spektrogramm-Bild erstellt. Das Argument origin wird nicht unterstützt.

Gibt zurück:
spectrum2D-Array

Spalten sind die Periodogramme aufeinanderfolgender Segmente.

freqs1-D-Array

Die Frequenzen, die den Zeilen in spectrum entsprechen.

t1D-Array

Die Zeiten, die den Mittelpunkten der Segmente entsprechen (d.h. den Spalten in spectrum).

imAxesImage

Das von imshow erstellte Bild, das das Spektrogramm enthält.

Siehe auch

psd

Unterscheidet sich im Standard-Überlappungsgrad, in der Rückgabe des Mittelwerts der Segment-Periodogramme, im Nicht-Zurückgeben von Zeiten und in der Erzeugung eines Liniendiagramms anstelle einer Kolormap.

magnitude_spectrum

Ein einzelnes Spektrum, ähnlich wie bei einem einzelnen Segment, wenn mode 'magnitude' ist. Plottet eine Linie anstelle einer Kolormap.

angle_spectrum

Ein einzelnes Spektrum, ähnlich wie bei einem einzelnen Segment, wenn mode 'angle' ist. Plottet eine Linie anstelle einer Kolormap.

phase_spectrum

Ein einzelnes Spektrum, ähnlich wie bei einem einzelnen Segment, wenn mode 'phase' ist. Plottet eine Linie anstelle einer Kolormap.

Anmerkungen

Hinweis

Dies ist der pyplot-Wrapper für axes.Axes.specgram.

Die Parameter detrend und scale_by_freq gelten nur, wenn mode auf 'psd' gesetzt ist.

Beispiele für die Verwendung von matplotlib.pyplot.specgram#

Spektrogramm

Spektrogramm