check_COLA#
- scipy.signal.check_COLA(window, nperseg, noverlap, tol=1e-10)[源代码]#
检查是否满足恒定重叠相加 (COLA) 约束。
- 参数:
- windowstr 或 tuple 或 array_like
要使用的期望窗口。如果 window 是字符串或元组,则将其传递给
get_window
以生成窗口值,默认情况下这些值是 DFT 偶数的。有关窗口列表和所需参数,请参阅get_window
。如果 window 是 array_like,则它将直接用作窗口,并且其长度必须为 nperseg。- npersegint
每个段的长度。
- noverlapint
段之间重叠的点数。
- tolfloat, 可选
允许的箱的加权和与中值箱和的方差。
- 返回:
- verdictbool
如果选择的组合在 tol 内满足 COLA,则为 True,否则为 False
另请参阅
check_NOLA
检查是否满足非零重叠相加 (NOLA) 约束
stft
短时傅里叶变换
istft
逆短时傅里叶变换
注释
为了能够通过
istft
中的逆 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] 中找到,其中当“幅度平坦度”为 1 时,满足 COLA 条件。
在 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) 进行频谱和频谱密度估计,包括窗口函数的综合列表和一些新的 at-top 窗口”,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
COLA 对于 25% (1/4) 的重叠不成立
>>> signal.check_COLA(signal.windows.boxcar(100), 100, 25) False
“对称”的 Hann 窗口(用于滤波器设计)不是 COLA
>>> signal.check_COLA(signal.windows.hann(120, sym=True), 120, 60) False
“周期性”或“DFT 偶数”的 Hann 窗口(用于 FFT 分析)对于 1/2、2/3、3/4 等重叠是 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