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]#

通过使用 get_window 实例化 ShortTimeFFT

方法 get_window 用于创建长度为 nperseg 的窗口。这里使用参数名称 noverlapnperseg,因为它们与其他经典的 STFT 库更加一致。

参数:
win_param: Union[str, tuple, float],

传递给 get_window 的参数。对于没有参数的窗口,它可以是一个字符串(例如,'hann'),对于参数化窗口,它可以是一个元组(例如,('gaussian', 2.)),或者是一个指定 kaiser 窗口形状参数的单个浮点数(即 4.('kaiser', 4.) 是相等的)。有关更多详细信息,请参见 get_window

fsfloat

输入信号的采样频率。它与采样间隔 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

phase_shiftint | None

如果设置,则为每个频率 f 添加线性相位 phase_shift / mfft * f。默认值 0 确保第零个切片(其中 t=0 居中)上没有相位偏移。有关更多详细信息,请参见属性 phase_shift

另请参阅

scipy.signal.get_window

返回给定长度和类型的窗口。

from_dual

使用对偶窗口创建实例。

ShortTimeFFT

使用标准初始化程序创建实例。

示例

以下实例 SFT0SFT1 是等效的

>>> 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)