Python 入门教程:关于 numpy 窗函数 Blackman

布莱克曼窗(Blackman window):它是通过使用余弦求和的前三个项形成的圆锥。 它被设计为具有尽可能接近的最小泄漏。 它接近最佳,仅比Kaiser窗口(Kaiser window)差一点。

参数(numpy.blackman):

M:int输出窗口中的点数。

如果为零或更少,则返回一个空数组。

返回值:

out:数组

最大值标准化为1的窗口(仅当样本数为奇数时才显示1)。

示例:

import numpy as np print(np.blackman(12))

输出:

[ -1.38777878e-17 3.26064346e-02 1.59903635e-01 4.14397981e-01 7.36045180e-01 9.67046769e-01 9.67046769e-01 7.36045180e-01 4.14397981e-01 1.59903635e-01 3.26064346e-02 -1.38777878e-17]

Python 入门教程:关于 numpy 窗函数 Blackman

绘制窗口及其频率响应(需要SciPy和matplotlib):

代码:对于窗口:

import numpy as np import matplotlib.pyplot as plt from numpy.fft import fft, fftshift window = np.blackman(51) plt.plot(window) plt.title("www.linuxidc.com") plt.ylabel("Amplitude") plt.xlabel("Sample") plt.show()

输出:

Python 入门教程:关于 numpy 窗函数 Blackman

代码:对于频率:

import numpy as np import matplotlib.pyplot as plt from numpy.fft import fft, fftshift window = np.blackman(51) plt.figure() A = fft(window, 2048) / 25.5 mag = np.abs(fftshift(A)) freq = np.linspace(-0.5, 0.5, len(A)) response = 20 * np.log10(mag) response = np.clip(response, -100, 100) plt.plot(freq, response) plt.title("www.linuxidc.com") plt.ylabel("Magnitude [dB]") plt.xlabel("Normalized frequency [cycles per sample]") plt.axis('tight') plt.show()

输出:

Python 入门教程:关于 numpy 窗函数 Blackman

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a5c3dc3b7fd10e32647ac5d30e1d1446.html