1. 程式人生 > >Python scipy 計算短時傅立葉變換(Short-time Fourier transforms)

Python scipy 計算短時傅立葉變換(Short-time Fourier transforms)

計算短時傅立葉變換(STFT)

scipy.signal.stftxfs = 1.0window ='hann'nperseg = 256noverlap = Nonenfft = Nonedetrend = Falsereturn_onesided = Trueboundary ='zeros'padded = Trueaxis = -1 

 

引數:
: 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 函式。如果它是一個函式,它需要一個段並返回一個去趨勢段。如果detrendFalse,則不進行去除趨勢。預設為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)。

返回:
: ndarray

取樣頻率陣列。

: ndarray

段時間陣列。

Zxx  : ndarray

x的 STFT 預設情況下,Zxx的最後一個軸對應於段時間。

 

Reference:

[1] https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.stft.html