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 欄都代表 ‘magnitude’ 或功率譜密度 (‘psd’) 頻譜。此參數將屬性 scaling 設定為相同的值。有關詳細資訊,請參閱方法 scale_to

phase_shiftint | None

如果設定,則將線性相位 phase_shift / mfft * f 新增至每個頻率 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)