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)[源代码][源代码]#
通过使用
get_window
实例化ShortTimeFFT
。方法
get_window
用于创建一个长度为 nperseg 的窗口。这里使用了参数名 noverlap 和 nperseg,因为它们与其他经典STFT库中的用法更为一致。- 参数:
- win_param: Union[str, tuple, float],
传递给
get_window
的参数。对于没有参数的窗口,它可能是一个字符串(例如,'hann'
),对于参数化的窗口,它是一个元组(例如,('gaussian', 2.)
),或者是一个指定 kaiser 窗口形状参数的单个浮点数(即4.
和('kaiser', 4.)
是等价的。更多详情请参见get_window
。- fs浮动
输入信号的采样频率。它与采样间隔 T 的关系是
T = 1 / fs
。- nperseg: int
样本中的窗口长度,对应于 m_num。
- noverlap: int
窗口重叠的样本数。它与 hop 增量相关,通过
hop = npsereg - noverlap
计算。- symmetric_win: bool
如果
True
则生成一个对称窗口,否则生成一个周期性窗口(默认)。尽管对称窗口在大多数应用中似乎更为合理,但默认选择周期性窗口是为了与get_window
的默认设置相对应。- fft_mode‘twosided’, ‘centered’, ‘onesided’, ‘onesided2X’
要使用的FFT模式(默认’onesided’)。详情请参见属性 fft_mode。
- mfft: int | None
如果需要零填充的FFT,则使用FFT的长度。如果为 ``None``(默认),则使用窗口 win 的长度。
- scale_to‘magnitude’, ‘psd’ | None
如果不是
None
(默认),窗口函数会被缩放,因此每个STFT列代表一个’幅度’或功率谱密度(’psd’)谱。此参数将 scaling 属性设置为相同的值。详情请参见 scale_to 方法。- 相移int | None
如果设置,为每个频率 f 添加一个线性相位 phase_shift / mfft * f。默认值 0 确保在第零片(其中 t=0 为中心)上没有相位偏移。更多详情请参见属性 phase_shift。
参见
scipy.signal.get_window
返回一个给定长度和类型的窗口。
from_dual
使用双窗口创建实例。
ShortTimeFFT
使用标准初始化器创建实例。
示例
以下实例
SFT0
和SFT1
是等价的:>>> 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)