scipy.signal.windows.hann¶
- scipy.signal.windows.hann(M, sym=True)[源代码]¶
返回Hann窗口。
Hann窗是通过使用升余弦或正弦平方形成的锥形,两端接触零点。
- 参数
- M集成
输出窗口中的点数。如果为零或更小,则返回空数组。
- sym布尔值,可选
如果为True(默认值),则生成对称窗口,用于过滤设计。如果为False,则生成周期性窗口,用于频谱分析。
- 退货
- wndarray
最大值归一化为1的窗口(尽管在以下情况下不会显示值1 M 是均匀的,并且 sym 为True)。
注意事项
Hann窗口定义为
\[W(N)=0.5-0.5\cos\Left(\frac{2\pi{n}}{M-1}\Right) \qquad 0\leq n\leq M-1\]这扇窗户是以奥地利气象学家朱利叶斯·冯·汉(Julius Von Hann)的名字命名的。它也被称为余弦钟。它有时被错误地称为“汉宁”窗,源于原文中将“汉”用作动词,与念力中的“汉明”窗非常相似。
大多数对Hann窗口的引用都来自信号处理文献,在这些文献中,Hann窗口被用作许多用于平滑值的窗口函数之一。它也被称为变迹(意思是“去除脚部”,即平滑采样信号开始和结束处的不连续)或锥化函数。
参考文献
- 1
布莱克曼,R.B.和图基,J.W.(1958)功率谱的测量,多佛出版,纽约。
- 2
E.R.Kanasewich,“地球物理中的时间序列分析”,阿尔伯塔大学出版社,1975,第106-108页。
- 3
维基百科,“窗口功能”,https://en.wikipedia.org/wiki/Window_function
- 4
W.H.Press,B.P.Flannery,S.A.Teukolsky和W.T.Vetterling,“数值处方”,剑桥大学出版社,1986,第425页。
示例
绘制窗口及其频率响应:
>>> from scipy import signal >>> from scipy.fft import fft, fftshift >>> import matplotlib.pyplot as plt
>>> window = signal.windows.hann(51) >>> plt.plot(window) >>> plt.title("Hann window") >>> plt.ylabel("Amplitude") >>> plt.xlabel("Sample")
>>> plt.figure() >>> A = fft(window, 2048) / (len(window)/2.0) >>> freq = np.linspace(-0.5, 0.5, len(A)) >>> response = np.abs(fftshift(A / abs(A).max())) >>> response = 20 * np.log10(np.maximum(response, 1e-10)) >>> plt.plot(freq, response) >>> plt.axis([-0.5, 0.5, -120, 0]) >>> plt.title("Frequency response of the Hann window") >>> plt.ylabel("Normalized magnitude [dB]") >>> plt.xlabel("Normalized frequency [cycles per sample]")