手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2019-12-21] 来源:Linux公社  作者:醉落红尘 [字体: ]

布莱克曼窗(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

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-12/161769.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款