scipy.signal.check_COLA

scipy.signal.check_COLA(window, nperseg, noverlap, tol=1e-10)[源代码]

检查是否满足常量重叠添加(可乐)约束。

参数
window字符串、元组或类似数组

要使用的所需窗口。如果 window 是字符串或元组,则将其传递给 get_window 以生成窗口值,该窗口值是DFT-即使在默认情况下也是如此。看见 get_window 有关窗口和所需参数的列表,请执行以下操作。如果 window is array_like它将直接用作窗口,其长度必须为nperseg。

nperseg集成

每个线段的长度。

noverlap集成

线段之间要重叠的点数。

tol浮动,可选

仓位加权总和与仓位中位数总和的允许方差。

退货
verdict布尔尔

True 如果选择的组合满足可口可乐的要求 tolFalse 否则

参见

check_NOLA

检查是否满足非零重叠添加(NOLA)约束

stft

短时傅里叶变换

istft

短时傅里叶逆变换

注意事项

为了能够通过中的逆STFT实现STFT的反转 istft 信号加窗满足“常量重叠相加”(COLA)的约束就足够了。这确保输入数据中的每个点的权重相等,从而避免走样并允许完全重建。

满足可乐的一些窗口示例:
  • 矩形窗口的重叠为0,1/2,2/3,3/4,.

  • 1/2、3/4、5/6重叠处的Bartlett窗口.

  • 汉恩窗口在1/2,2/3,3/4,.

  • 任何2/3重叠的Blackman系列窗口

  • 任何具有以下功能的窗口 noverlap = nperseg-1

有关其他窗口的非常全面的列表,请参阅 [2], 其中当“振幅平坦度”为1时满足可乐条件。

0.19.0 新版功能.

参考文献

1

朱利叶斯·O·史密斯三,“频谱音频信号处理”,W3K出版社,2011年,ISBN978-0-9745607-3-1。

2

G.Heinzel,A.Ruediger和R.Schilling,“通过离散傅立叶变换估计频谱和频谱密度,包括窗口函数的综合列表和一些新的顶部窗口”,2002年,http://hdl.handle.net/11858/00-001M-0000-0013-557A-5

示例

>>> from scipy import signal

确认75%(3/4)重叠的矩形窗口的可乐条件:

>>> signal.check_COLA(signal.windows.boxcar(100), 100, 75)
True

不过,对于25%(1/4)的重叠部分,可乐不是真的:

>>> signal.check_COLA(signal.windows.boxcar(100), 100, 25)
False

“对称”汉恩橱窗(过滤设计)不是可乐:

>>> signal.check_COLA(signal.windows.hann(120, sym=True), 120, 60)
False

对于重叠为1/2、2/3、3/4等,“周期性”或“DFT-EVEN”汉恩窗口(用于FFT分析)为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