計算短時傅里葉變換(STFT)
scipy.signal.
stft
(x,fs = 1.0,window ='hann',nperseg = 256,noverlap = None,nfft = None,detrend = False,return_onesided = True,boundary ='zeros',padded = True,axis = -1 )
參數: |
-
x
: array_like
-
時間序列的測量值
-
fs
: float,可選
-
x時間序列的采樣頻率。默認為1.0。
-
window
: str或tuple或array_like,可選
-
所需的窗口使用。如果window是一個字符串或元組,則傳遞給它get_window 以生成窗口值,默認情況下為DFT-even。有關get_window 窗口和所需參數的列表,請參閱。如果window是array_like,它將直接用作窗口,其長度必須是nperseg。默認為Hann窗口。
-
nperseg
: int,可選
-
每個段的長度。默認為256。
-
noverlap
: int,可選
-
段之間重疊的點數。如果沒有, 。默認為無。指定時,必須滿足COLA約束(請參閱下面的注釋)。noverlap = nperseg // 2
-
nfft
: int,可選
-
如果需要零填充FFT,則使用FFT的長度。如果為 None,則FFT長度為nperseg。默認為無。
-
detrend
: str或function或False,可選
-
指定如何去除每個段的趨勢。如果detrend 是字符串,則將其作為類型參數傳遞給detrend 函數。如果它是一個函數,它需要一個段並返回一個去趨勢段。如果detrend 為False,則不進行去除趨勢。默認為False。
-
return_onesided
: bool,可選
-
如果為True,則返回實際數據的單側頻譜。如果 False返回雙面光譜。請注意,對於復雜數據,始終返回雙面光譜。默認為 True。
-
boundary
: str或None,可選
-
指定輸入信號是否在兩端擴展,以及如何生成新值,以使第一個窗口段在第一個輸入點上居中。這具有當所采用的窗函數從零開始時能夠重建第一輸入點的益處。有效選項是 。對於零填充擴展,默認為“零”。即擴展到了。['even', 'odd', 'constant', 'zeros', None] [1, 2, 3, 4] [0, 1, 2, 3, 4, 0] nperseg=3
-
填充
: bool,可選
-
指定輸入信號在末尾是否填充零以使信號精確地擬合為整數個窗口段,以便所有信號都包含在輸出中。默認為True。填充發生在邊界擴展之后,如果 邊界不是None,則填充為True,默認情況下也是如此。
-
axis
: int,可選
-
計算STFT的軸; 默認值超過最后一個軸(即axis=-1 )。
|
返回: |
-
f
: ndarray
-
采樣頻率數組。
-
t
: ndarray
-
段時間數組。
-
Zxx
: ndarray
-
x的 STFT 。默認情況下,Zxx的最后一個軸對應於段時間。
|
Reference:
[1] https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.stft.html
[2] https://www.cnblogs.com/klchang/p/9280509.html
[3] http://blog.sina.com.cn/s/blog_6163bdeb0102dwfw.html