几种常见窗函数的特性

解决一下上一篇的遗留问题

上一篇谈了FIR滤波器的加窗是什么,但是自觉得还是有些地方没有说明白,就好比模拟加窗过程都没有讲明白。

不过今天再看书时,又有所得,忽然明白了为什么模拟加窗过程出了问题,这是由于我之前对于数字滤波器的设计过程还很模糊。

窗函数设计法的设计思路:

  • 给定要求的理想频响,一般为分段常数
  • 转为时域设计,所以需要求出

  • 由于是无限时长的,所以需要加窗截断为,窗的长度为N

因为窗函数是在时域内截断,所以需要将理想滤波器转换到时域来处理。

  • 求出加窗后的实际频响

  • 检查是否满足,不满足就重复3、4步骤

我使用的子程序是书上提供的,可以产生一个理想滤波器。

今天突然对这个程序有了新的理解。因为这个是子程序产生的时域的滤波器,为了能够在电脑中存储,本来就已经加了一个矩形窗,因此它的频域波形存在波纹;而我又加一个矩形窗,对这个已经加了矩形窗的滤波器当然是一点效果都没有咯。

几种常见窗函数

回到今天的主题,今天探讨一下几种常见滤波器的特性和使用场景。

翻了很多遍书,发现对于滤波器的设计,主要关心的是过渡带宽(Transition bandwidth)通带边沿衰减(Passband ripple)阻带最小衰减(Minimum stopband attenuation),而且大部分的参数都是用dB作单位。

使用dB做单位的好处有:

  • 数值变小。由于分贝是取对数值,所以能很方便的表示大的数量的变化
  • 运算方便。放大器级联时,总的放大倍数是各级相乘。用分贝做单位时,总增益就是相加。
  • 方便感知。人对强度(光照、声音)的感知,接近于于强度的对数的正比。

至于为什么要这么多种窗呢?那是因为不同的窗特性不一样,比如最简单的矩形窗,虽然完成了截断工作,但是通带衰减大、阻带衰减小,导致能量的浪费;而之后的多种窗则或多或少的弥补了这些缺点。

矩形窗

矩形窗的定义为

频率响应函数为

因此

下面分析窗函数的主要参数:

  • 幅度响应第一个零点在

因此,主瓣宽度为为,因此传输带宽近似于

  • 第一个旁瓣大概在的位置,因此它的幅值为

对比主瓣的幅值,旁瓣幅值峰值为

三角形窗

由于吉布斯现象,矩形窗存在一个0到1的越变;而三角形窗则提供了一个比较缓慢的变化,它的定义式为:

谱密度函数表达式如下,’≈’仅当时成立

主瓣宽度为,旁瓣峰值衰减为25dB

汉宁窗(Hanning)

这是一个升余弦窗,被定义为

主瓣宽度为,旁瓣峰值衰减为31dB

海明窗(Hamming)

海明窗和汉宁窗很像,不同的是它有一部分是不连续的,被定义为

主瓣宽度为,旁瓣峰值衰减为41d

布莱克曼窗(Blackman)

这个窗函数和前两个窗函数很像,不过增加了升余弦的二次谐波分量,被定义为

主瓣宽度为,旁瓣峰值衰减为57dB

凯泽窗(Kaiser)

这是一个非常有用的窗函数,它可以同时调整主瓣宽度与旁瓣宽度,这是其他窗函数不具备的,被定义为

是第一类零阶贝塞尔函数,是用来调整窗函数性能的参数

本人使用的

如何选择窗函数

选择窗函数可以参考前文中的窗函数设计法

先确定自己的需求,然后根据窗函数的极限性能,做出选择,最后再验证这个窗函数是否符合需求


本文中的代码已上传本人的github


参考书籍:

  • _DigitalSignalProcessingUsingMatlabv4.0_JohnG.Proakis
  • 《数字信号处理教程》程佩青

几种常见窗函数的特性相关推荐

  1. 几种常见窗函数及其特性

    class="Button ColumnPageHeader-MenuToggler Button–plain"> 几种常见窗函数的特性 greedyhao 一个高级的搬运工 ...

  2. 几种常见窗函数及其matlab程序实现,几种常见窗函数及其MATLAB程序实现(20200911110057).pdf...

    . 几种常见窗函数及其 MATLAB程序实现 2013-12-16 13:58 2296 人阅读 评论 (0) 收藏 举报 分类: Matlab (15) 数字信号处理中通常是取其有限的时间片段进行分 ...

  3. 几种常见窗函数及其MATLAB程序实现

    数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算.具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换.相关分析等数学处理.信号的截断产生了能量泄漏,而用FF ...

  4. 几种常见窗函数及其MATLAB实现

    对于窗函数一些教材和论坛都有好的定义和解释说明.鉴于前人的基础上,我也作了一些学习和研究.本文针对于不同的窗函数进行简单的对比,并有MATLAB程序应用. 注:原文来源: http://blog.cs ...

  5. gaussian窗口函数_几种常见窗函数及其matlab应用

    展开全部 常用的窗函数: bartlett,巴特利特窗口e68a843231313335323631343130323136353331333365656465 调用格式:w = bartlett(L ...

  6. Ajax 和 XML: 五种常见 Ajax 模式

    Asynchronous JavaScript + XML(Ajax)无疑是 2006 年最热门的技术术语,且有望在 2007 得到进一步发展.但是对您的应用程序来说它究竟有什么意义呢?Ajax 应用 ...

  7. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  8. 【机器学习】机器学习实践中的 7 种常见错误

    编译:伯乐在线 - yixingqingkong,英文:Cheng-Tao Chu 编注:本文作者是 Codecademy 的分析主管 Cheng-Tao Chu,其专长是数据挖掘和机器学习,之前在 ...

  9. python 释放链表节点_四种常见链表的实现及时间复杂度分析(Python3版)

    四种常见的链表包括:单向链表,单向循环链表,双向链表,双向循环链表. 要实现的链表操作包括 - is_empty() 判断链表是否为空 - length() 求链表长度 - traversing() ...

最新文章

  1. 应用程序_Blazor VS 传统Web应用程序
  2. 年度影像旗舰vivo X70系列正式发布 售价3699元起
  3. 修改文章更新缓存php,php – 使用liipImagineBundle更新/删除记录时删除/更新缓存的图像...
  4. 如何禁止文本框输入,但是要传值
  5. linux化学公式软件下载,化学公式编辑器下载-Efofex FX Chem(化学公式编辑器)下载 v3.004.0 官方特别版-IT猫扑网...
  6. 【计算机网络】Linux系统连接吉林大学校园网
  7. 七种常见的数据分析法之:帕累托法则
  8. 声纹、语音识别入门书籍推荐
  9. 2020鸿蒙系统pc版,华为将在2020年发布鸿蒙操作系统2.0版,应用于创新国产PC电脑...
  10. 使用 Wall 搭建个人照片墙和视频墙
  11. OpenGL--多边形偏移
  12. 把不同的pdf文档合并在一个pdf文件中,一次批量打印
  13. osChina.net工具
  14. windwos设置GifCam录屏全局快捷键
  15. 湖南卫视全部节目主持人名单
  16. Maven-assemble打包使用案例
  17. ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》 第11章 项目训练深层神经网络(梯度消失与梯度爆炸,选择初始化,选择激活函数)
  18. 为什么程序员都喜欢节后跳槽?内行人告诉你原因
  19. 转 - dx8和dx9的差异
  20. 年销售额5亿爆款单品“螺蛳粉“营销策略分享!

热门文章

  1. python的字典-使用字典+遍历字典+字典嵌套
  2. c++成员函数指针的本质
  3. 使用photoshop(ps)将图片的背景色变成透明
  4. 关于微信支付签名错误的一些可能的解决方向
  5. 【kafka 监控】Kafka_exporter+prometheus 监控kafka数据
  6. Druid Monitor监控
  7. android google 登录登出接入
  8. Altium Designer PCB电路板设计总结
  9. xmind 使用详解
  10. Bibtex格式说明