本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。