Python numpy中的Blackman

Python numpy中的Blackman

布莱克曼窗口:它是通过使用余弦之和的前三个项形成的锥度。它被设计为具有接近最小的泄漏可能。它接近最佳状态,只比Kaiser窗口稍差。

参数(numpy.blackman):
M : int 输出窗口中的点的数量。
如果是零或更少,则返回一个空数组。

返回:
out : 数组

窗口,最大值归一(只有在样本数为奇数时才出现数值一)。

示例:

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]

绘制窗口及其频率响应图(需要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("Blackman window")
plt.ylabel("Amplitude") 
plt.xlabel("Sample") 
plt.show() 

输出:
numpy中的Python 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("Frequency response of Blackman window")
plt.ylabel("Magnitude [dB]")
plt.xlabel("Normalized frequency [cycles per sample]")
plt.axis('tight')
plt.show()

输出:
numpy中的Python Blackman

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程