scipy.signal.windows.kaiser

scipy.signal.windows.kaiser(M, beta, sym=True)[源代码]

返回Kaiser窗口。

Kaiser窗口是通过使用贝塞尔函数形成的锥形。

参数
M集成

输出窗口中的点数。如果为零或更小,则返回空数组。

beta浮动

形状参数,确定主瓣宽度和副瓣电平之间的权衡。随着测试版变大,窗口会变小。

sym布尔值,可选

如果为True(默认值),则生成对称窗口,用于过滤设计。如果为False,则生成周期性窗口,用于频谱分析。

退货
wndarray

最大值归一化为1的窗口(尽管在以下情况下不会显示值1 M 是均匀的,并且 sym 为True)。

注意事项

Kaiser窗口定义为

\[W(N)=I_0\Left(\beta\sqrt{1-\frac{4N^2}{(M-1)^2}}) \右)/I_0(\测试版)\]

使用

\[\quad-\frac{M-1}{2}\leq n\leq\frac{M-1}{2},\]

哪里 \(I_0\) 是修正的零阶贝塞尔函数。

Kaiser是以Jim Kaiser的名字命名的,他发现了基于贝塞尔函数的DPSS窗口的简单近似。Kaiser窗口非常接近于数字延长球面序列或Slepian窗口,Slepian窗口是将窗口主瓣中的能量相对于总能量最大化的变换。

Kaiser可以通过改变Beta参数来近似其他窗口。(有些文献使用alpha=beta/pi。) [4]

测试版

窗口形状

0

矩形

5

类似于海明

6

类似于汉恩

8.6

类似于一个黑人

14的Beta值可能是一个很好的起点。请注意,随着beta变大,窗口会变小,因此样本数量需要足够大,才能对越来越窄的峰值进行采样,否则将返回NAN。

对Kaiser窗口的大多数参考来自信号处理文献,在该文献中,它被用作许多用于平滑值的窗口函数之一。它也被称为变迹(意思是“去除脚部”,即平滑采样信号开始和结束处的不连续)或锥化函数。

参考文献

1

J.F.Kaiser,“数字滤波器”--收录于“用数字计算机进行系统分析”中的CH7,编辑:郭富荣和J.F.Kaiser,第218-285页。约翰·威利父子,纽约,(1966)。

2

E.R.Kanasewich,“地球物理中的时间序列分析”,阿尔伯塔大学出版社,1975,第177-178页。

3

维基百科,“窗口功能”,https://en.wikipedia.org/wiki/Window_function

4

F.J.Harris,“On the Use of Window for Harmonic Analysis with the Display Fourier Transform”,IEEE会议论文集,Vol.66,第1号,第51-83页,1978年1月。 DOI:10.1109/PROC.1978.10837

示例

绘制窗口及其频率响应:

>>> from scipy import signal
>>> from scipy.fft import fft, fftshift
>>> import matplotlib.pyplot as plt
>>> window = signal.windows.kaiser(51, beta=14)
>>> plt.plot(window)
>>> plt.title(r"Kaiser window ($\beta$=14)")
>>> 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 = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
>>> plt.plot(freq, response)
>>> plt.axis([-0.5, 0.5, -120, 0])
>>> plt.title(r"Frequency response of the Kaiser window ($\beta$=14)")
>>> plt.ylabel("Normalized magnitude [dB]")
>>> plt.xlabel("Normalized frequency [cycles per sample]")
../../_images/scipy-signal-windows-kaiser-1_00.png
../../_images/scipy-signal-windows-kaiser-1_01.png