计算短时傅里叶变换(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