短時(shí)傅里葉變換(STFT)解決了快速傅里葉變換(FFT)的缺點(diǎn),在得到信號(hào)頻域信息的基礎(chǔ)上也保留了時(shí)域信息。具體實(shí)現(xiàn)是通過添加窗函數(shù)(窗函數(shù)的長度是固定的),時(shí)域信號(hào)加窗將原始時(shí)域信號(hào)分割為多個(gè)片段,對(duì)每一個(gè)片段進(jìn)行FFT,得到時(shí)頻譜。對(duì)應(yīng)python中的函數(shù)scipy.signal.stft(x,fs=1.0,window=‘hann’,nperseg=256,noverlap=None,nfft=None,detrend=False,return_oneside=True,boundary=‘zeros’,padded=True,axis=-1)
其輸入?yún)?shù)分別為
x: STFT變換的時(shí)域信號(hào)
fs: 時(shí)域信號(hào)的采樣頻率
window: 時(shí)域信號(hào)分割需要的窗函數(shù),可以自定義窗函數(shù)(但是這個(gè)方面沒有嘗試,需要自定義的話請(qǐng)自己嘗試)
nperseg: 窗函數(shù)長度
noverlap: 窗函數(shù)重疊數(shù),默認(rèn)為50%。
nfft: FFT的長度,默認(rèn)為nperseg。如大于nperseg會(huì)自動(dòng)進(jìn)行零填充
return_oneside: True返回復(fù)數(shù)實(shí)部,None返回復(fù)數(shù)。
剩下的參數(shù)一般不會(huì)涉及,采用默認(rèn)的參數(shù)。