本文简要介绍 python 语言中 scipy.signal.check_NOLA
的用法。
用法:
scipy.signal.check_NOLA(window, nperseg, noverlap, tol=1e-10)#
检查是否满足非零重叠添加 (NOLA) 约束。
- window: str 或 tuple 或 数组
想要使用的窗口。如果窗户是一个字符串或元组,它被传递给scipy.signal.get_window生成窗口值,默认为DFT-even。看scipy.signal.get_window获取窗口列表和所需参数。如果窗户是数组,它将直接用作窗口,其长度必须为nperseg。
- nperseg: int
每个段的长度。
- noverlap: int
段之间重叠的点数。
- tol: 浮点数,可选
bin 的加权总和与中位数 bin 总和的允许方差。
- verdict: bool
如果选择的组合满足 tol 内的 NOLA 约束,则为 True,否则为 False
参数 ::
返回 ::
注意:
为了通过
istft
中的反 STFT 启用 STFT 的反转,信号窗口必须遵守 “nonzero overlap add” (NOLA) 的约束:对所有人
,其中 是窗函数, 是帧索引,并且 是跃点大小( =nperseg-重叠)。这确保了overlap-add 反演方程的分母中的归一化因子不为零。只有非常病态的窗口才会使 NOLA 约束失效。
参考:
[1]Julius O. Smith III,“频谱音频信号处理”,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
例子:
>>> import numpy as np >>> from scipy import signal
确认 75% (3/4) 重叠矩形窗口的 NOLA 条件:
>>> signal.check_NOLA(signal.windows.boxcar(100), 100, 75) True
NOLA 也适用于 25% (1/4) 的重叠:
>>> signal.check_NOLA(signal.windows.boxcar(100), 100, 25) True
“Symmetrical” Hann 窗口(用于滤波器设计)也是 NOLA:
>>> signal.check_NOLA(signal.windows.hann(120, sym=True), 120, 60) True
只要有重叠,NOLA 失败就需要相当长的病态窗口:
>>> w = np.ones(64, dtype="float") >>> w[::2] = 0 >>> signal.check_NOLA(w, 64, 32) False
如果没有足够的重叠,则末端为零的窗口将不起作用:
>>> signal.check_NOLA(signal.windows.hann(64), 64, 0) False >>> signal.check_NOLA(signal.windows.hann(64), 64, 1) False >>> signal.check_NOLA(signal.windows.hann(64), 64, 2) True
相关用法
- Python SciPy signal.check_COLA用法及代码示例
- Python SciPy signal.cheb2ord用法及代码示例
- Python SciPy signal.cheb1ord用法及代码示例
- Python SciPy signal.cheby2用法及代码示例
- Python SciPy signal.cheby1用法及代码示例
- Python SciPy signal.chirp用法及代码示例
- Python SciPy signal.choose_conv_method用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy signal.coherence用法及代码示例
- Python SciPy signal.csd用法及代码示例
- Python SciPy signal.correlate2d用法及代码示例
- Python SciPy signal.cubic用法及代码示例
- Python SciPy signal.correlation_lags用法及代码示例
- Python SciPy signal.convolve2d用法及代码示例
- Python SciPy signal.cspline1d用法及代码示例
- Python scipy.signal.czt用法及代码示例
- Python SciPy signal.cwt用法及代码示例
- Python SciPy signal.convolve用法及代码示例
- Python SciPy signal.cont2discrete用法及代码示例
- Python SciPy signal.cspline1d_eval用法及代码示例
- Python SciPy signal.cmplx_sort用法及代码示例
- Python SciPy signal.correlate用法及代码示例
- Python SciPy signal.residue用法及代码示例
- Python SciPy signal.iirdesign用法及代码示例
- Python SciPy signal.max_len_seq用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.check_NOLA。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。