scipy.signal.windows.bartlett

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

返回一个Bartlett窗口。

Bartlett窗口非常类似于三角形窗口,不同之处在于端点为零。它通常用于信号处理中,使信号逐渐变细,而不会在频域中产生太多纹波。

参数
M集成

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

sym布尔值,可选

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

退货
wndarray

三角形窗口,其中第一个和最后一个样本等于零,最大值归一化为1(尽管在以下情况下不会显示值1 M 是均匀的,并且 sym 为True)。

参见

triang

两端不接触零的三角形窗

注意事项

Bartlett窗口定义为

\[W(N)=\frac{2}{M-1}\Left( \frac{M-1}{2}-\Left|n-\frac{M-1}{2}\Right| \右)\]

对Bartlett窗口的大多数引用来自信号处理文献,在该文献中,它被用作许多用于平滑值的窗口函数之一。请注意,使用此窗口进行卷积会产生线性插值。它也被称为变迹(意思是“去除脚部”,即平滑采样信号开始和结束处的不连续)或锥化函数。Bartlett的傅里叶变换是两个正弦函数的乘积。请注意在Kanasewich的精彩讨论。 [2]

参考文献

1

M.S.Bartlett,“周期图分析和连续谱”,Bitomka 37,1-16,1950。

2

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

3

A.V.Oppenheim和R.W.Schafer,“离散时间信号处理”,Prentice-Hall,1999,第468-471页。

4

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

5

W.H.Press,B.P.Flannery,S.A.Teukolsky和W.T.Vetterling,“数值处方”,剑桥大学出版社,1986,第429页。

示例

绘制窗口及其频率响应:

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