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 的視窗。此處使用參數名稱 noverlap 和 nperseg,因為它們更符合其他經典的 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
使用標準初始化器建立實例。
範例
以下實例
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)