scipy.signal.ShortTimeFFT.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)[source]#
Instantiate
ShortTimeFFT
by usingget_window
.The method
get_window
is used to create a window of length nperseg. The parameter names noverlap, and nperseg are used here, since they more inline with other classical STFT libraries.- Parameters:
- win_param: Union[str, tuple, float],
Parameters passed to
get_window
. For windows with no parameters, it may be a string (e.g.,'hann'
), for parametrized windows a tuple, (e.g.,('gaussian', 2.)
) or a single float specifying the shape parameter of a kaiser window (i.e.4.
and('kaiser', 4.)
are equal. Seeget_window
for more details.- fsfloat
Sampling frequency of input signal. Its relation to the sampling interval
T
isT = 1 / fs
.- nperseg: int
Window length in samples, which corresponds to the
m_num
.- noverlap: int
Window overlap in samples. It relates to the
hop
increment byhop = npsereg - noverlap
.- symmetric_win: bool
If
True
then a symmetric window is generated, else a periodic window is generated (default). Though symmetric windows seem for most applications to be more sensible, the default of a periodic windows was chosen to correspond to the default ofget_window
.- fft_mode‘twosided’, ‘centered’, ‘onesided’, ‘onesided2X’
Mode of FFT to be used (default ‘onesided’). See property
fft_mode
for details.- mfft: int | None
Length of the FFT used, if a zero padded FFT is desired. If
None
(default), the length of the windowwin
is used.- scale_to‘magnitude’, ‘psd’ | None
If not
None
(default) the window function is scaled, so each STFT column represents either a ‘magnitude’ or a power spectral density (‘psd’) spectrum. This parameter sets the propertyscaling
to the same value. See methodscale_to
for details.- phase_shiftint | None
If set, add a linear phase
phase_shift
/mfft
*f
to each frequencyf
. The default value 0 ensures that there is no phase shift on the zeroth slice (in which t=0 is centered). See propertyphase_shift
for more details.
See also
scipy.signal.get_window
Return a window of a given length and type.
from_dual
Create instance using dual window.
ShortTimeFFT
Create instance using standard initializer.
Examples
The following instances
SFT0
andSFT1
are equivalent:>>> 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)