matplotlib.axes.Axes.specgram#

Axes.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 Farbskala (mit 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. Zum Erstellen von Fenstervektoren siehe window_hanning, window_none, numpy.blackman, numpy.hamming, numpy.bartlett, scipy.signal, scipy.signal.get_window, etc. Wenn eine Funktion als Argument übergeben wird, muss sie ein Datensegment als Argument entgegennehmen 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 auf jedes Segment angewendete Funktion vor der FFT, die dazu dient, den Mittelwert oder die lineare Tendenz zu entfernen. Im Gegensatz zu MATLAB, wo der detrend-Parameter 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', was die Leistungsspektraldichte liefert. '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' ist keine Skalierung. 'dB' gibt die Werte in dB-Skala zurück. Wenn mode 'psd' ist, ist dies dB-Leistung (10 * log10). Andernfalls ist es dB-Amplitude (20 * log10). 'default' ist 'dB', wenn mode 'psd' oder 'magnitude' ist, und andernfalls '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, default: rcParams["image.cmap"] (default: 'viridis')
xextentNone oder (xmin, xmax)

Die Bildausdehnung entlang der x-Achse. Der Standardwert setzt xmin auf den linken Rand des ersten Intervalls (Spalte spectrum) 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 Farbskala abdeckt. Standardmäßig deckt die Farbskala den gesamten Wertebereich der Daten ab.

**kwargs

Zusätzliche Schlüsselwortargumente werden an imshow weitergegeben, welches das Spektrogrammbild erzeugt. Das `origin`-Schlüsselwortargument 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.

t1-D array

Die Zeiten, die den Mittelpunkten von Segmenten entsprechen (d. h. den Spalten in spectrum).

imAxesImage

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

Siehe auch

psd

Unterscheidet sich im Standard-Overlap; bei der Rückgabe des Mittelwerts der Periodogramme der Segmente; bei der Nicht-Rückgabe von Zeiten; und bei der Erzeugung eines Liniendiagramms anstelle einer Farbskala.

magnitude_spectrum

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

angle_spectrum

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

phase_spectrum

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

Anmerkungen

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

Beispiele für die Verwendung von matplotlib.axes.Axes.specgram#

Spektrogramm

Spektrogramm