首页 理论教育 MATLAB设计IIR滤波器优化

MATLAB设计IIR滤波器优化

时间:2023-06-19 理论教育 版权反馈
【摘要】:图3-9 巴特沃斯高通滤波器的频率响应2.完全IIR滤波器的设计在MATLAB信号处理工具箱中提供了几个直接设计IIR数字滤波器的函数,它们把以上几个步骤集成为一个整体函数,直接调用就可以设计滤波器了,这就是完全滤波器的设计。

MATLAB设计IIR滤波器优化

1.典型IIR滤波器的设计

MATLAB中IIR数字滤波器的设计步骤如下:

1)按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标。

2)根据转换后的技术指标使用滤波器的阶数选择函数,确定最小的阶数N和固定频率Wn

3)运用最小阶数N产生模拟滤波器原型。

4)运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器。

5)运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字滤波器。

以上这种滤波器的设计过程称为典型的滤波器设计。

典型的滤波器的设计方法如图3-5所示。

下面介绍其具体实施过程。

(1)模拟原型滤波器的设计过程

模拟低通滤波器的振幅响应H)和设计规定如图3-6所示。通带为0~p,通带的幅度响应规定为1,允许的波动为δ1。阻带为s~∞,要求的阻带衰减为δ2ps称为过渡带,在过渡带内振幅响应不作明确规定。习惯上称频率p为通带截止频率s为阻带截止频率。为了方便起见,有时将通带截止频率归一化处理,这时,滤波器成为标准形式。

978-7-111-36505-1-Chapter03-15.jpg

图3-5 典型IIR滤波器的设计方法

978-7-111-36505-1-Chapter03-16.jpg

图3-6 模拟低通滤波器的设计规定

指定低通滤波器的性能可用频率响应的幅值的平方表示。

978-7-111-36505-1-Chapter03-17.jpg978-7-111-36505-1-Chapter03-18.jpg,则有

978-7-111-36505-1-Chapter03-19.jpg

其中,ε为通带波动系数;A为阻带衰减参数;p为通带截止频率;s为阻带衰减频率。

Rp为通带允许的最大衰减,As为阻带允许的最小衰减,则

978-7-111-36505-1-Chapter03-20.jpg

978-7-111-36505-1-Chapter03-21.jpg

MATLAB信号处理工具箱为4种低通模拟滤波器提供的函数分别如下。

●巴特沃斯(Butterworth):[Z,P,K]=buttap(n)。

●切比雪夫Ⅰ(ChebyshevⅠ):[Z,P,K]=cheb1ap(n,Rp)。

●切比雪夫Ⅱ(ChebyshevⅡ):[Z,P,K]=cheb2ap(n,Rp)。

椭圆法(Elliptic):[Z,P,K]=ellipap(n,Rp,Rs)。

(2)频率转换

归一化模拟原型滤波器设计完成之后,就可以进行第二个步骤,即通过频带转换成所需要的类型(低通、高通、带通、带阻)的模拟滤波器。也就是说,模拟低通、高通、带通、带阻滤波器的主要设计方法就是先将要设计的滤波器的技术指标通过某种频率转换,转化成模拟低通滤波器的技术指标,并依据这些技术指标设计出低通滤波器的转移函数,然后再依据频率转换关系变成所要设计的滤波器的转移函数。根据模拟低通滤波器原型设计各类滤波器的频率转换式及有关设计参量表达式如表3-1所示。

表3-1 频率转换法

978-7-111-36505-1-Chapter03-22.jpg

【例3-1】用MATLAB设计一个三阶的模拟低通滤波器,通带内最大衰减为3dB,阻带内最大衰减为40dB,截止频率为8π弧度,再将其转换成截止频率为50π弧度的高通滤波器,绘出其频率响应图。

解:MATLAB程序如下:

978-7-111-36505-1-Chapter03-23.jpg

设计的低通和高通滤波器分别如图3-7和图3-8所示。

978-7-111-36505-1-Chapter03-24.jpg

图3-7 三阶椭圆低通滤波器的频率响应

978-7-111-36505-1-Chapter03-25.jpg

图3-8 三阶椭圆高通滤波器的频率响应(www.xing528.com)

(3)滤波器的离散化

滤波器的离散化有两种形式:冲激响应不变法和双线性变化法。

冲激响应不变法的基本原理就是从滤波器的冲激响应出发,对具有传递函数Hs)的模型滤波器的冲激响应ht),以周期T抽样所得到的离散序列hnT)为数字滤波器的冲激响应。

MATLAB工具箱提供了函数impivar(),采用冲激响应不变法来实现模拟滤波器到数字滤波器的转换,具体的使用方法如下:

[bz,az]=impinvar(b,a,Fs)可将模拟滤波器(b,a)转换成数字滤波器(bz,az),两者的冲激响应不变,即模拟滤波器的冲激响应按Fs抽样后等同于数字滤波器的冲激响应。当缺少参数Fs时,抽样频率取默认值1Hz。

双线性变换法:为了克服冲激响应不变法产生的频率混叠现象,需要使s平面与z平面建立一一对应的单值映射关系,即求出s=fz),然后将它代入Hs)就可以求出Hz),即

978-7-111-36505-1-Chapter03-26.jpg

MATLAB工具箱提供了函数bilinear(),用于实现双线性变换,使用方法如下:

[zd,pd,kd]=bilinear(z,p,k,Fs)把模拟滤波器的零、极点模型转换成数字滤波器的零、极点模型,其中Fs是抽样频率。

[numd,dend]=bilinear(num,den,Fs)把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型,其中Fs是抽样函数。

[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs)把模拟滤波器的状态方程模型转换成数字滤波器的状态方程模型,其中Fs是抽样函数。

以上三种形式,都可以增加一个参数Fp(预畸变频率),在进行双线性变换之前,对抽样频率进行预畸变,以保证频率冲激响应在双线性变换前后具有良好的单值映射关系。

【例3-2】用MATLAB设计一个数字信号处理系统,其抽样频率为Fs=100Hz,在该系统设计一个巴特沃斯高通滤波器,使其通带内允许的最小衰减为0.5dB,阻带内最小衰减为40dB,通带上限临界频率为30Hz,阻带下限临界频率为40Hz。

解:MATLAB程序实现及结果如下。

978-7-111-36505-1-Chapter03-27.jpg

设计的高通滤波器如图3-9所示。

978-7-111-36505-1-Chapter03-28.jpg

图3-9 巴特沃斯高通滤波器的频率响应

2.完全IIR滤波器的设计

在MATLAB信号处理工具箱中提供了几个直接设计IIR数字滤波器的函数,它们把以上几个步骤集成为一个整体函数,直接调用就可以设计滤波器了,这就是完全滤波器的设计。如图3-10所示,完全滤波器的设计为通用滤波器的设计带来了极大的方便。这些函数与数字滤波器的阶数选择函数配合使用,为特定的滤波器的设计返回所需的阶数和固有频率。

978-7-111-36505-1-Chapter03-29.jpg

图3-10 完全IIR滤波器的设计方法

这里选取巴特沃斯、切比雪夫I、切比雪夫Ⅱ、椭圆法4种方法进行比较,给出用上述方法设计数字滤波器的函数如下。

●巴特沃斯(Butterworth)滤波器:

978-7-111-36505-1-Chapter03-30.jpg

●切比雪夫Ⅰ(ChebysheveⅠ)型滤波器:

978-7-111-36505-1-Chapter03-31.jpg

●切比雪夫Ⅱ(ChebysheveⅡ)型滤波器:

978-7-111-36505-1-Chapter03-32.jpg

●椭圆滤波器:

978-7-111-36505-1-Chapter03-33.jpg

其中,Wp表示通带截止频率;Ws表示阻带截止频率;Rp表示通带纹波系数(通带内的最大衰减);Rs表示阻带纹波系数(阻带内的最小衰减);N表示滤波器最小阶数;Wn表示截止频率。b、a分别表示阶次为N+1的数字滤波器系统传递函数的分子和分母多项式系数向量;Fs为采样频率;n为在[0,Fs]频率范围内选取的频率点数;f表示记录频率点数。n取2的幂次方,可以提高运算的速度,因为freqz函数采用基2的FFT算法。ftype=high时为高通滤波器,ftype=bandpass时为带通滤波器,ftype=Stop时为带阻滤波器。

【例3-3】用MATLAB设计一个25阶巴特沃斯滤波器,返回它的零、极点增益模型[Z,P,K]。用MATLAB实现。

分析:巴特沃斯滤波器的特点是具有通带内最平坦的幅度特性,而且随着频率的升高单调递减。因此,此滤波器又称为“最平”的幅频响应滤波器,MATLAB信号处理工具箱为低通模拟巴特沃斯滤波器的产生提供了函数buttap():[Z,P,K]=buttap(n)返回一个n阶巴特沃斯滤波器的零、极点和增益。

MATLAB实现如下:

978-7-111-36505-1-Chapter03-34.jpg

仿真结果如下:

978-7-111-36505-1-Chapter03-35.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈