check_COLA#
- scipy.signal.check_COLA(window, nperseg, noverlap, tol=1e-10)[源代码]#
检查是否符合常量重叠相加 (COLA) 约束。
- 参数:
- window字符串或元组或 array_like
希望使用的窗口。如果 window 是字符串或元组,则会将其传递给
get_window
以生成窗口值,默认为 DFT 偶数。有关窗口和所需参数的列表,请参见get_window
。如果 window 是 array_like,它将直接用作窗口,其长度必须是 nperseg。- npersegint
每个段的长度。
- noverlapint
段之间重叠的点数。
- tol浮点数,可选
一个箱加权和从箱中值和的允许的方差。
- 返回:
- verdict布尔值
如果选定的组合在 tol 内满足 COLA,则值为 True,否则为 False
另请参阅
check_NOLA
检查满足零交叉重叠加 (NOLA) 约束
stft
短时傅里叶变换
istft
逆短时傅里叶变换
备注
为了能通过
istft
中的 inverse STFT 来实现 STFT 的逆运算,信号加窗操作必须遵循“恒定重叠加 (COLA)”约束。这可以确保输入数据中的每个点具有相同权重,从而避免混叠并实现全面重构。- 满足 COLA 的一些窗口示例
重叠为 0、1/2、2/3、3/4、… 的矩形窗口
重叠为 1/2、3/4、5/6、… 的 Bartlett 窗口
重叠为 1/2、2/3、3/4、… 的 Hann 窗口
重叠为 2/3 的任意 Blackman 族窗口
具有
noverlap = nperseg-1
的任意窗口
[2] 中可以找到非常全面的其他窗口列表,其中 COLA 条件在“幅度平坦度”为 1 时得到满足。
添加于版本 0.19.0 中。
参考
[1]Julius O. Smith III,“Spectral Audio Signal Processing”,W3K Publishing,2011 年,ISBN 978-0-9745607-3-1。
[2]G. Heinzel、A. Ruediger 和 R. Schilling,“通过离散傅里叶变换 (DFT) 进行频谱和频谱密度估计,包括窗口函数的完整列表和一些新的顶窗”,2002,http://hdl.handle.net/11858/00-001M-0000-0013-557A-5
示例
>>> from scipy import signal
确认 75%(3/4)重叠的矩形窗口的 COLA 条件
>>> signal.check_COLA(signal.windows.boxcar(100), 100, 75) True
而对于 25%(1/4)的重叠,COLA 并不成立
>>> signal.check_COLA(signal.windows.boxcar(100), 100, 25) False
“对称”Hann 窗口(用于滤波器设计)不是 COLA
>>> signal.check_COLA(signal.windows.hann(120, sym=True), 120, 60) False
对于 1/2、2/3、3/4 等重叠,“周期性”或“DFT 偶”Hann 窗口是 COLA
>>> signal.check_COLA(signal.windows.hann(120, sym=False), 120, 60) True
>>> signal.check_COLA(signal.windows.hann(120, sym=False), 120, 80) True
>>> signal.check_COLA(signal.windows.hann(120, sym=False), 120, 90) True