from_window#
- classmethod ShortTimeFFT.from_window(win_param, fs, nperseg, noverlap, *, symmetric_win=False, fft_mode='onesided', mfft=None, scale_to=None, phase_shift=0)[Quelle]#
Instanziiert
ShortTimeFFTmithilfe vonget_window.Die Methode
get_windowwird verwendet, um ein Fenster der Länge nperseg zu erstellen. Die Parameternamen noverlap und nperseg werden hier verwendet, da sie besser zu anderen klassischen STFT-Bibliotheken passen.- Parameter:
- win_param: Union[str, tuple, float],
An
get_windowübergebene Parameter. Bei Fenstern ohne Parameter kann es sich um einen String handeln (z. B.'hann'), bei parametrisierten Fenstern um ein Tupel (z. B.('gaussian', 2.)) oder um eine einzelne Gleitkommazahl, die den Formparameter eines Kaiser-Fensters angibt (d. h.4.und('kaiser', 4.)sind gleich). Sieheget_windowfür weitere Details.- fsfloat
Abtastfrequenz des Eingangssignals. Ihre Beziehung zum Abtastintervall
TistT = 1 / fs.- nperseg: int
Fensterlänge in Samples, die der
m_numentspricht.- noverlap: int
Fensterüberlappung in Samples. Sie hängt mit der Schrittweite
hopdurchhop = npsereg - noverlapzusammen.- symmetric_win: bool
Wenn
True, wird ein symmetrisches Fenster generiert, andernfalls ein periodisches Fenster (Standard). Obwohl symmetrische Fenster für die meisten Anwendungen sinnvoller zu sein scheinen, wurde der Standardwert für periodische Fenster gewählt, um dem Standardwert vonget_windowzu entsprechen.- fft_mode‘twosided’, ‘centered’, ‘onesided’, ‘onesided2X’
Modus der zu verwendenden FFT (Standard 'onesided'). Siehe Eigenschaft
fft_modefür Details.- mfft: int | None
Länge der FFT, wenn eine Null-Padding-FFT gewünscht wird. Wenn
None(Standard), wird die Länge des Fensterswinverwendet.- scale_to‘magnitude’, ‘psd’ | None
Wenn nicht
None(Standard), wird die Fensterfunktion so skaliert, dass jede STFT-Spalte entweder ein „Magnitude“- oder ein Leistungsspektraldichtespektren („psd“) darstellt. Dieser Parameter setzt die Eigenschaftscalingauf denselben Wert. Siehe Methodescale_tofür Details.- phase_shiftint | None
Wenn gesetzt, wird jeder Frequenz
feine lineare Phasephase_shift/mfft*fhinzugefügt. Der Standardwert 0 stellt sicher, dass auf dem nullten Slice (in dem t=0 zentriert ist) keine Phasenverschiebung erfolgt. Siehe Eigenschaftphase_shiftfür weitere Details.
Siehe auch
scipy.signal.get_windowGibt ein Fenster einer gegebenen Länge und eines gegebenen Typs zurück.
from_dualInstanz über duales Fenster erstellen.
ShortTimeFFTInstanz über Standard-Initialisierer erstellen.
Beispiele
Die folgenden Instanzen
SFT0undSFT1sind äquivalent>>> from scipy.signal import ShortTimeFFT, get_window >>> nperseg = 9 # window length >>> w = get_window(('gaussian', 2.), nperseg) >>> fs = 128 # sampling frequency >>> hop = 3 # increment of STFT time slice >>> SFT0 = ShortTimeFFT(w, hop, fs=fs) >>> SFT1 = ShortTimeFFT.from_window(('gaussian', 2.), fs, nperseg, ... noverlap=nperseg-hop)