FIR数字滤波器的MATLAB设计与实现 - 图文 下载本文

4 FIR数字滤波器的设计方法

4.1 窗函数法

考察一个线性相位的理想低通数字滤波器:

?d?ej???e????0j?????c ?c???? (4-1)

通过加窗处理,可以把一个无限长非因果序列截取为一个有限长的因果序列。 序列被截短从而要使用窗函数的根本目的是消除Gibbs现象所造成的影响。 假设?c?0.6?,分别考虑窗长N=81、??40;N=61、??30;N=41、??20三种情况,程序见附录中(1)。幅频响应如图4-1。

图4-1 加矩形窗后的幅频响应

无限长序列在频域上不稳定是因在时域上对其长度进行了截短,即加窗处理。阻带上的起伏会随着窗口截取长度的逐渐增大而逐渐减小,而且过渡带也会随着变窄。

吉布斯现象(Gibbs):通过傅立叶变换对周期函数的离散性采样数据进行展开后,选取有限项数据并将其合成为波形图。选取越多的有限项,合成的波形图中的峰起越逼近原信号的离散性采样数据。

10

4.1.1 用窗函数法设计FIR数字滤波器的步骤

(1)根据FIR数字滤波器的性能要求,确定滤波器单位脉冲响应长度N,临界频率{?k}。

(2)根据性能要求选择奇偶对称性合理的单位脉冲响应h?n?,幅频特性和相频特性

j??ed由理想频率响应确定。

??(3)计算理想的单位脉冲响应hd?n?,对理想频率响应进行M远大于N的M点等距离采样,hM?n?是通过运算求IDFT得到的,用hM?n?替代hd?n?。

(4)根据性能要求选择合适的窗函数w?n?,由h?n??hd?n?w?n?求得所需设计的FIR数字滤波器单位脉冲响应。

(5)求理想频率响应,对其幅频特性进行分析,若结果不符合设计要求,在合理范围内可尝试修改窗函数的长度或窗口,重复上述步骤,直至设计结果符合要求。

4.1.2 几种常见的窗函数

(1)矩形窗 定义:w?n??RN?n?

利用rectwin或boxcar函数可实现本函数。 (2)Hanning窗

w?n??定义:

1??2?n??1?cos???RN?n?2?N?1???? (4-2)

根据函数hann(由Toolbox提供)可实现本函数。 (3)Hamming窗

??2?n??w?n???0.54?0.46cos???RN?n??N?1???定义: (4-3)

根据函数hamming(由Toolbox提供)可实现本函数。 (4)Blackman窗

11

??2?n??4?n??w?n???0.42?0.5cos???0.08cos???RN?n??N?1??N?1???定义: (4-4)

根据函数blackman(由Toolbox提供)可实现本函数。 (5)Kaiser窗

为换取旁瓣抑制效果,先前介绍的几种窗函数都是以牺牲一定的主瓣宽度为代价的,这种交换关系在Kaiser窗上得到全方面的展示。

Kaiser窗的设计是由零阶Bessel函数构成的,设计Kaiser窗时主瓣宽度和旁瓣抑制之间的平衡取决于参数?。

?n,Wn,beta,ftype??kaiserord?f,a,dev,fs? (4-5)

这个函数根据所需设计的滤波器采样频率fs、边界频率f、边界频率点期望幅值a、幅值允许波动dev确定采用Kaiser窗设计时所需滤波器阶数n和?值,同时还将返回滤波器截止频率Wn和滤波器类型ftype。

表4-1 常用窗函数的特性

窗函数名 矩形窗 Bartlett窗 Hanning窗 Hamming窗 Blackmann窗 相应函数名 Boxcar;rectwin bartlett hann hamming blackman 近似过渡带宽 4?/N 8?/N 8?/N 8?/N 12?/N 最小阻带衰减 21dB 25dB 44dB 53dB 74dB 精确过渡带宽 1.8?/N 6.1?/N 6.2?/N 6.6?/N 11?/N 4.1.3 用窗函数法设计FIR数字滤波器的示例

wp?0.1?,Rp?0.1dBws?0.17?,Rp?50dBfs?2000Hz,,

指标:

设计一个FIR低通滤波器,程序见附录中的(2),图像见图4-2、图4-3、图4-4。

12

图4-2 滤波器的增益响应

图4-3 信号滤波前时域和频域图

图4-4 信号滤波后时域和频域图

对比信号滤波前后的时域和频域图,发现信号滤波前是经两个不同的信号叠加而成的,经过滤波器滤波后得到一个稳定的信号。

13