基于MATLAB的IIR数字
滤波器的设计
(MATLAB在通信中的应用-----课程论文)
论文作者: 王紫艳 专业:通信工程专业10--04班
学号: 311009020405 指导老师: 候艳芳
基于MATLAB的IIR数字滤波器的设计
摘要:在现代通信系统中,由于信号中经常会混有各种复杂成分,很多信号分析都是基于滤波器而进行的,而数字滤波器是通过数值运算实现滤波的,具有处理精确度高、稳定、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤功能。数字滤波器根据其冲激响应函数的时域特性,可以分为两类:无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。传统的数字滤波器设计使用繁琐的公式计算,尤其是设计高阶滤波器时工作量很大。利用MATLAB数字信号处理(DSP)工具箱(signal processing toolbox)可以快速有效的实现数字滤波器的设计与仿真。MATLAB软件的频谱分析和滤波器的分析设计功能很强,从而使数字信号处理变得十分简单。本文比较了设计IIR数字滤波器的两种方法,介绍了利用双线性变换法设计IIR滤波器的原理、步骤,并在MATLAB下进行了仿真。 关键字:MATLAB IIR 数字滤波器 DSP 一 引言
随着数字时代的到来,数字信号处理技术在电子产品中得到越来越广泛的应用,竞争的激烈也促使是数字信号处理技术的不断发展。而数字滤波在数字信号处理过程中占有举足轻重的低位,数字滤波的优劣直接关系到数字信号处理的好坏,常用的数字滤波器有FIR数字滤波器和IIR数字滤波器,其中IIR数字滤波器具有结构简单,运算速度快,占用存储空少, 较高的计算精度和较低的阶数实现,较好的选频特性等优点,等到广泛的应用。 二 IIR数字滤波器的理论
IIR数字滤波器的特征是具有无限持续时间的冲激响应,这种滤波器也称之为递归型滤波器。IIR数字滤波器的设计常采用两种方法:一、冲激响应不变法 二、双线性变换法。 2.1 冲激响应不变法
冲激响应不变法是从时域出发,要求数字滤波器的冲激响应h(n)对应于模拟滤波器的冲激响应ha(t)的抽样,即 h(n) =ha(nT) ,其中T是抽样周期。冲激响应不变法基本变换过
程为:
Ha(s) →ha(t) → h(n) → H(z)
由于数字滤波器的冲激响应
对应模拟滤波器冲激响应
的抽样,由抽样定
理可知数字滤波器的频率响应为模拟滤波器频率响应的周期延拓:
H(ej?)?1T??k??Ha(j??2?kT)
其中,抽样频率为: fs?1T,?s?2?T,???T
为了避免混叠失真要求模拟滤波器的频谱限带于折叠频率以内,即要满足:
Ha(j?)?0,???T??s2
而实际的滤波器并非严格限带,所以用冲激响应不变法设计的数字滤波器不可避免地会产生混叠失真。所以此法只适于设计带限滤波器。其映射关系如下:
在MATLAB工具箱中,提供了专用函数impinvar来实现以上计算,其调用格式为: 格式一:[BZ,AZ]= impinvar(B,A,Fs)
功能:把具有[B,A]模拟滤波器传递函数模型转换为采样频率为Fs(HZ)的数字滤波器的传递函数模型[BZ,AZ]。采样频率默认值为Fs=1。 格式二:[BZ,AZ]= impinvar(B,A,Fs,TOL)
功能:利用指定的容错误差TOL来确定极点是否重复。如果设置的容差增大,则函数认为相邻的很近的极点为重复极点的可能性增大。默认的TOL=0.001,即0.1%。
2.2 双线性变化法原理
为了克服冲激响应不变法多值映射产生的频率混叠的现象,双线性变换法的映射原理是: (1)通过下面的变换公式把整个S平面压缩到中介S1平面的一条横带里(宽度从-π/T到π/T),其中C为常数可根据设计要求选取;
??ctan(?1T2)
(2) 通过
将此横带变换到整个Z平面,这样就使S平面和Z平面是一一对应的单
值映射关系,消除了频谱混叠现象。
可以证明,从S平面到Z平面的映射关系为:
z?c?sc?s,
s?c1?z1?z?1?1图2-2 双线性变换法的映射关系
由于从S→Z和从Z→S的映射规则都是分式线性变换,因此称其为双线性变换。 MATLAB信号处理工具箱为实现双线型变换提供了函数bilinear,基本调用格式如下: 格式一:[Zd,Pd,Kd]= bilinear(Z,P,K,Fs)
功能:把模拟滤波器的零极点模型转换为数字滤波器的零极点模型。其中Fs为采样
频率。
格式二:[numd,dend]= bilinear(num,den,Fs)
功能:把模拟滤波器的传递函数模型转换为数字滤波器的传递函数模型。 格式三:[Ad,Bd,Cd,Dd]= bilinear(A,B,C,D,Fs)
功能:把模拟滤波器的状态方程模型转换为数字滤波器的状态方程模型。
说明:以上三种调用格式中,可以在增设一个畸变频率Fp(HZ)输入参数。在进行双
线性变换之前,对采样了频率进行畸变处理,以保证频率冲激响应在双线性变换前后,在Fp处具有良好的单值映射关系。 三 IIR数字滤波器的设计步骤
(1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标; (2)根据转换后的技术指标设计模拟低通滤波器H(s);
(3)在按一定规则将H(s)转换为H(z);
若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:
(4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤(2)设计出模拟低通滤波器H(s),再将H(s)转换为所需的H(z)。 四 IIR 数字滤波器的MATLAB 设计及实现
MATLAB信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。这里选取巴特沃斯法、切比雪夫I、切比雪夫Ⅱ、椭圆法四种方法进行比较。给出用上述方法设计数字滤波器的函数如下: Butterworth 滤波器: [N,Wc]=buttoed(Wp,Ws,Rp,Rs) [b,a]=butter(N,Wc)
[b,a]=butter(N,Wc,'ftype') [h,f]=freqz(b,a,n,Fs) Chebysheve I 型滤波器: [N,Wc]=cheb1ord(Wp,Ws,Rp,Rs) [b,a]=cheby1(N, Rp,Wc) [b,a]=cheby1(N,WRp,n,'ftype') [h,f]=freqz(b,a,n,Fs) Chebysheve II型滤波器: [N,Wc]=cheb2ord(Wp,Ws,Rp,Rs) [b,a]=cheby2(N, Rp,Wc) [b,a]=cheby2(N,WRp,n,'ftype') [h,f]=freqz(b,a,n,Fs) 椭圆滤波器:
[N,Wc]=ellipord(Wp,Ws,Rp,Rs) [b,a]=ellip(N,Rp,Rs,Wc)
[b,a]=ellip(N,Rp,Rs,Wc,'ftype') [h,f]=freqz(b,a,n,Fs)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于MATLAB的IIR数字滤波器的设计及DSP实现12在线全文阅读。
相关推荐: