0 引言
数字滤波器(Digital Filter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理中起着非常重要的作用,在信号的过滤、检测与参数的估计等方面,是使用最为广泛的一种线性系统。
实现数字滤波器的方法有两种,一是采用计算机软件进行,就是把所要完成的工作通过程序让计算机来实现;二是设计专用的数字处理硬件。这个地方主要用到的就是第一种方法。即是用Mafiab提供的信号处理工具箱来实现数字滤波器。
Matlab信号处理工具箱提供了丰富的设计方法,可以使得繁琐的程序设计简化成函数的调用,只要以正确的指标参数调用函数,就可以正确快捷地得到设计结果。
1 IIR数字滤波器设计方法比较
1.1 概述
IIR数字滤波器的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行。
对于IIR数字滤波器的设计具体步骤如下:
(1)按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。
(2)根据转换后的技术指标设计模拟低通滤波器G(s)(G(s)是低通滤波器的传递函数)。
(3)再按照一定的规则将G(s)转换成H(z)(H(z)是数字滤波器的传递函数)。若设计的数字滤波器是低通的,上述的过程可以结束,若设计的是高通、带通或者是带阻滤波器,那么还需要下面的步骤:
将高通、带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标,然后设计出低通G(s),再将G(s)转换为H(z)。
Matlab信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。这里选取巴特沃斯法、切比雪夫I、切比雪夫Ⅱ、椭圆法四种方法进行比较。给出用上述方法设计数字滤波器的函数如下:
其中:Wp表示通带截止频率;Ws表示阻带截止频率;Rp表示通带纹波系数;Rs表示阻带纹波系数;N表示滤波器最小阶数;Wn表示截止频率。b,a分别表示阶次为N+1的数字滤波器系统传递函数的分子和分母多项式系数向量;Fs为采样频率;n为在区间[O Fs]频率范围内选取的频率点数;f记录频率点数。n取2的幂次方,可以提高运算的速度,因为freqz函数采用基2的FFT算法。ftype=high时,为高通滤波器;ftype=bandpass时,为带通滤波器;ftype=stop时,为带阻滤波器。
1.2 四种设计方法比较
(1)在低通滤波器中的比较
假如:Wp=20 Hz,Ws=50 Hz,Fs=200,Rp=1 dB,Rs=30 dB,分别用Butterworth低通滤波器、Chebyshev I型低通滤波器、ChebyshevⅡ型低通滤波器、椭圆低通滤波器四种方法进行设计,如图1所示。