赞
踩
上一篇谈了FIR滤波器的加窗是什么,但是自觉得还是有些地方没有说明白,就好比模拟加窗过程都没有讲明白。
不过今天再看书时,又有所得,忽然明白了为什么模拟加窗过程出了问题,这是由于我之前对于数字滤波器的设计过程还很模糊。
窗函数设计法的设计思路:
因为窗函数是在时域内截断,所以需要将理想滤波器转换到时域来处理。
我使用的子程序是书上提供的,可以产生一个理想滤波器。
今天突然对这个程序有了新的理解。因为这个是子程序产生的时域的滤波器,为了能够在电脑中存储,本来就已经加了一个矩形窗,因此它的频域波形存在波纹;而我又加一个矩形窗,对这个已经加了矩形窗的滤波器当然是一点效果都没有咯。
回到今天的主题,今天探讨一下几种常见滤波器的特性和使用场景。
翻了很多遍书,发现对于滤波器的设计,主要关心的是过渡带宽(Transition bandwidth)、通带边沿衰减(Passband ripple)、阻带最小衰减(Minimum stopband attenuation),而且大部分的参数都是用dB作单位。
使用dB做单位的好处有:
至于为什么要这么多种窗呢?那是因为不同的窗特性不一样,比如最简单的矩形窗,虽然完成了截断工作,但是通带衰减大、阻带衰减小,导致能量的浪费;而之后的多种窗则或多或少的弥补了这些缺点。
矩形窗的定义为
频率响应函数为
因此
下面分析窗函数的主要参数:
因此,主瓣宽度为为,因此传输带宽近似于
对比主瓣的幅值,旁瓣幅值峰值为
由于吉布斯现象,矩形窗存在一个0到1的越变;而三角形窗则提供了一个比较缓慢的变化,它的定义式为:
谱密度函数表达式如下,’≈’仅当时成立
主瓣宽度为,旁瓣峰值衰减为25dB
这是一个升余弦窗,被定义为
主瓣宽度为,旁瓣峰值衰减为31dB
海明窗和汉宁窗很像,不同的是它有一部分是不连续的,被定义为
主瓣宽度为,旁瓣峰值衰减为41d
这个窗函数和前两个窗函数很像,不过增加了升余弦的二次谐波分量,被定义为
主瓣宽度为,旁瓣峰值衰减为57dB
这是一个非常有用的窗函数,它可以同时调整主瓣宽度与旁瓣宽度,这是其他窗函数不具备的,被定义为
是第一类零阶贝塞尔函数,是用来调整窗函数性能的参数
本人使用的
选择窗函数可以参考前文中的窗函数设计法
先确定自己的需求,然后根据窗函数的极限性能,做出选择,最后再验证这个窗函数是否符合需求
本文中的代码已上传本人的github
参考书籍:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。