实验四 IIR滤波器设计
一、教学目的和任务
1.熟悉用双线性变换法设计IIR数字滤波器的原理和方法; 2.了解用脉冲响应不变法设计IIR数字滤波器的原理和方法;
3.掌握双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点;
4.掌握数字滤波器的计算机仿真方法。
二、实验原理介绍
IIR数字滤波器的系统函数为z的有理分式:
?1H(z)??bzkk?0Nk?1N?1
1??akz?1设计IIR滤波器的系统函数,就是要确定H(z)的阶数N及分子分母多项式的系数ak和
bk,使其H(ej?)?H(z)z?ej?满足指定的频率特性。
由于模拟滤波器的设计有许多简单而严谨的设计公式和大量的图表可以利用,因此IIR滤波器设计的方法之一是:先设计一个合适的模拟滤波器,然后将模拟滤波器通过适当的变换转换成满足给定指标的数字滤波器。
1、Butterworth模拟低通滤波器
幅度平方函数: Ha(j?)?21???1?????c?2N
其中,N为滤波器的阶数,?c为通带截止频率。
2.Chebyshev模拟低通滤波器
幅度平方函数:Ha(j?)?21?1??C()?c22N
3、脉冲响应不变法原理
用数字滤波器的单位脉冲响应序列h(n)逼近模拟滤波器的冲激响应ha(t),让h(n)正好等于ha(t)的采样值,即:h(n)?ha(nT) 其中,T为采样间隔。
如果以Ha(s)和H(z)分别表示ha(t)的拉氏变换及h(n)的Z变换,则:
H(z)z?esT?1?(s)??H?s?j2?k? ?Haa??Tk???T??
4、双线性变换法原理
双线性变换法是通过两次映射采用非线性频率压缩的方法,将整个频率轴上的频率范围压缩到 ±π/T之间,再用z?e转换到z平面上,从而使数字滤波器的频率响应与模拟滤波器的频率响应相似。
sT
5、设计IIR数字滤波器的步骤
1)确定数字滤波器的通带频率、阻带频率,通带最大衰减和阻带最小衰减。 2)计算对应的模拟低通滤波器的频率。
3)确定模拟低通滤波器的阶数N和3dB截止频率?c。 4)模拟低通滤波器的系统函数H(s)。
5)由H(s)经过反归一化、脉冲响应不变法和双线性变换法确定数字低通滤波器的系统函数H(z)。
6)设计其它形式的滤波器时,由模拟低通到所需类型滤波器的频率域变换直接得到。 6*、MATLAB中用于IIR数字滤波器设计的函数 1) 滤波器的特性分析
① Freqz函数:求解数字滤波器的频率响应
[h,w]=freqz(b,a,n):返回数字滤波器的n点复频率响应,输入参数b和a分别是滤波器系数的分子和分母向量;输出参数h是复频率响应,w是频率点。输入参数n默认是512。
Freqz(b,a,…):没有输出参数,直接在当前窗口中绘制频率响应的幅频响应和相频响应。 ② Freqs函数:求解模拟滤波器的频率响应
[h,w]=freqz(b,a,n):返回模拟滤波器的n点复频率响应,输入参数b和a分别是滤波器系数的分子和分母向量;输出参数h是复频率响应,w是频率点。输入参数n默认是512。
③ Abs、angle函数:分别用于从复频域响应数据中提取幅值信息和相位信息 ④ Zplane函数:绘制系统的零极点图
zplane(z,p):以单位圆为基准;z为系统的零点向量,图中用o表示;p为系统的极点向量,图中用x表示。
zplane(b,a):输入参数为系统传递函数的分子向量和分母向量。 2) 确定滤波器最小阶数 函数 [n,wn]=Buttord(wp,ws,rp,rs) 函数功能 估计Butterworth滤波器阶数 [n,wn]=Cheb1ord(wp,ws,rp,rs) 估计ChebyshevⅠ型滤波器阶数 [n,wn]=Cheb2ord(wp,ws,rp,rs) 估计ChebyshevⅡ型滤波器阶数 [n,wn]=Ellipord(wp,ws,rp,rs) wp:归一化的通带截止频率; rp:通带最大衰减量; n:返回符合要求的滤波器阶数;
3) 模拟低通滤波器的设计 函数 [z,p,k]=Buttap(n) [z,p,k]=Cheb1ap(n,rp) [z,p,k]=Cheb2ord(n,rs) [z,p,k]=Ellipap(n,rp,rs) [b,a]=Butter(n,wn,’s’) [b,a]=Cheby1(n,rp,wn,’s’) [b,a]=Cheby2(n,rp,wn,’s’) [b,a]=Ellip(n,rp,rs,wn,’s’) 估计椭圆滤波器阶数 ws:归一化的阻带截止频率 rs:阻带最小衰减量 wn:返回滤波器的截止频率
函数功能 返回Butterworth滤波器的零点、极点、增益 返回ChebyshevⅠ型滤波器的零点、极点、增益 返回ChebyshevⅡ型滤波器的零点、极点、增益 返回椭圆滤波器的零点、极点、增益 返回Butterworth滤波器的分子分母多项式的系数 返回ChebyshevⅠ型滤波器的分子分母多项式的系数 返回ChebyshevⅡ型滤波器的分子分母多项式的系数 返回椭圆滤波器的分子分母多项式的系数 4) 模拟滤波器的离散化
① Impinvar函数:模拟滤波器变换成数字滤波器的脉冲响应不变法
[bz,az]=impinvar(b,a,fs):将模拟滤波器(b,a)变换成数字滤波器(bz,az);输入参数fs是对模拟滤波器频率响应的采样,默认为1。
② bilinear函数:模拟滤波器转换为数字滤波器的双线性变换法 [zd,pd,kd]=bilinear(z,p,k,fs):将采样零极点模型表达的模拟滤波器转换为数字滤波器。列向量zd为零点向量,列向量pd为极点向量,kd为系统增益,fs是指定的采样频率。
[numd,dend]=bilinear(num,den,fs):将采用传递函数模型表达的模拟滤波器转换为数字滤波器。
[ad,bd,cd,dd]=bilinear(a,b,c,d,fs):将采用状态空间模型表达的模拟滤波器转换为数字滤波器。
5) 直接设计IIR数字滤波器 函数 [b,a]=Butter(n,wn) [b,a]=Cheby1(n,r,wn) [b,a]=Cheby2(n,r,wn) [b,a]=Ellip(n,rp,rs,wn) 函数功能 设计巴特沃斯滤波器 设计切比雪夫Ⅰ型滤波器,r指定通带内波纹大小 设计切比雪夫Ⅱ型滤波器,r指定通带内波纹大小 设计椭圆滤波器,rp指定通带内波纹最大衰减,rs指定通带内波纹的最小衰减 wn:数字滤波器的截止频率;当wn是一个二元向量[w1,w2]时,返回一个2n阶的带通滤波器,通带为w1≤ ω ≤w2 。
返回滤波器的分子分母多项式的系数,b为分子系数向量、a为分母系数向量(降幂排列)。
三、实验相关知识准备
1.模拟滤波器的设计函数
为了利用模拟滤波器设计数字滤波器,先必须设计对应的模拟滤波器,常用的模拟滤波
器有:bessel滤波器,butterworth滤波器,chebyshevI型滤波器,chebyshevII型滤波器及椭圆函数滤波器。 1》.模拟滤波器的设计函数
1) 设计bessel模拟低通滤波器 [z,p,k]=besselap(n)
2)设计butterworth模拟低通滤波器 [z,p,k]=buttap(n)
3)设计chebyshevI型模拟低通滤波器 [z,p,k]=cheb1ap(n,Rp)
Rp:通带内的波纹系数,单位分贝 4)设计chebyshevII型模拟低通滤波器 [z,p,k]=cheb2ap(n,Rs)
Rs:阻带内的波纹系数低于通带Rs分贝 5)设计椭圆模拟滤波器 [z,p,k]=ellipap(n,Rp.Rs) 2》滤波器阶数的选择
下列函数除了能选择模拟滤波器的阶数外,同时也能选择数字滤波器的阶数。
1) 选择butterworth滤波器阶数
数字域:[n,Wn]=buttord(Wp,Ws,Rp,Rs) 模拟域:[n,Wn]=buttord(Wp,Ws,Rp,Rs,’s’) 2) 选择chebyshevI型滤波器阶数
数字域:[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs) 模拟域:[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,’s’) 3) 选择chebyshevII型滤波器阶数 数字域:[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs) 模拟域:[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs,’s’) 4) 选择椭圆滤波器阶数
数字域:[n,Wn]=ellipord(Wp,Ws,Rp,Rs) 模拟域:[n,Wn]=ellipord(Wp,Ws,Rp,Rs,’s’)
注意:
n:返回符合要求性能指标的数字滤波器或模拟滤波器的最小阶数 Wn:滤波器的截至频率(即3db频率)
Wp:通带的截至频率,Ws:阻带的截至频率,单位rad/s。且均为规一化频率,即
0?Wp(Ws)?1。1对应π弧度。
频率规一化:信号处理工具箱中使用的频率为莱奎斯特频率,根据香农定理,它为采样频率的一半,在滤波器设计中的截止频率均使用莱奎斯特频率进行规一化。规一化频率转换为角频率,则将规一化频率乘以π。如果将规一化频率转换为Hz,则将规一化频率乘以采样频率的一半。 3》.模拟频率变换
1) 低通到低通模拟滤波器变换
[bt,at]=lp2lp(b,a,Wo)