实验三IIR数字滤波器设计及应用文档格式.docx
《实验三IIR数字滤波器设计及应用文档格式.docx》由会员分享,可在线阅读,更多相关《实验三IIR数字滤波器设计及应用文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
实验时间
2013-5-8
实验室
数字信号处理实验室
一.实验预习
1.实验目的
加深理解IIR数字滤波器的特性,掌握IIR数字滤波器的设计原理与设计方法,以及IIR数字滤波器的应用。
2.实验原理、实验流程或装置示意图
实验原理:
IIR数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现。
首先在频域将数字滤波器设计指标转化为模拟滤波器设计指标,将任意模拟滤波器转化为原型模拟滤波器设计指标,根据模拟低通滤波器设计指标设计出模拟低通滤波,由模拟低通滤波经过相应的复频域转换得到H(s),由H(s)经过脉冲响应不变法或双线性变换法得到所需的IIR数字滤波器H(z)。
由此可见,IIR数字滤波器的设计的重要环节是模拟低通滤波的设计,设计模拟低通滤波器的主要方法有Butterworth、Chebyshev和椭圆等滤波器设计方法。
实验流程或装置示意图:
(1).设计一个数字滤波器,要求在0~0.2(rad)内衰耗不大于3dB,在0.6~(rad)内衰耗不小于60dB。
[N,Wc]=buttord(0.2,0.6,3,60);
[b,a]=butter(N,Wc);
freqz(b,a);
axis([0,1,-120,0]);
(2).设计一个数字带通滤波器,要求在100~200Hz通带内纹波不大于3dB,通带两边各50Hz外是阻带,衰耗不小于40dB。
抽样频率为1000Hz。
Wp=[100200]/500;
Ws=[100-50200+50]/500;
Rp=3;
Rs=40;
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)
[b,a]=cheby1(N,Rp,Wn);
freqz(b,a,512,1000);
title('
ChebyshevTypeIBandpassFilter'
);
axis([0,500,-80,0]);
3.实验设备及材料
个人计算机一台及MATLAB仿真软件。
4.实验方法步骤及注意事项
实验方法步骤:
先打开电脑,然后再打开MATLAB仿真软件,在BlankM-File中输入程序,然后再编译运行程序,直到程序能编译运行为止。
注意事项:
(1).为了省时间以及编译的方便性,程序应该在BlankM-File中输入,而不应该在CommandWindow中直接运行;
(2).在使用MATLAB时应注意中英输入法的切换,在中文输入法输入程序时得到的程序是错误的;
(3).MATLAB中两个信号相乘表示为x.*u,中间有个‘.’,同样两个信号相除也是如此,也就是在实验中要注意乘和点乘的区别。
二.实验内容
1.实验现象与结果
实验内容:
(1).
k=0:
100;
x=cos(pi*k/4)+cos(2*pi*k/3)+1;
[n,wc]=buttord(1/4,2/3,0.7,20);
[b,a]=butter(n,wc,'
low'
滤波器阶数n=3,wc=0.4316;
系统函数
(2).
[n,wc]=buttord(2/3,1/4,0.7,20)
high'
)
滤波器阶数n=3,wc=0.4633;
(3).
[n,wc]=buttord([0.20.3],[0.10.4],0.7,20)
bandpass'
滤波器阶数n=4;
wc=0.17970.3302;
(4).
[n,wc]=buttord([0.10.4],[0.20.3],0.7,20)
stop'
滤波器阶数n=4;
wc=0.17070.3453;
脉冲响应不变法设计巴特沃斯型滤波器:
Wp=[0.30.6];
Ws=[0.20.72];
Ap=1;
As=42;
Fs=1;
wp=Wp*Fs;
ws=Ws*Fs;
[N,Wc]=buttord(wp,ws,Ap,As);
[b,a]=butter(N,Wc,'
[d,f]=impinvar(b,a,Fs);
ButterworthBandpassFilter'
脉冲响应不变法设计切比雪夫I型滤波器:
[N,Wc]=cheb1ord(wp,ws,Ap,As);
[b,a]=cheby1(N,Ap,Wc,'
chebychevTypeIBandpassFilter'
脉冲响应不变法设计切比雪夫Ⅱ型滤波器:
[N,Wc]=cheb2ord(wp,ws,Ap,As);
[b,a]=cheby2(N,Ap,Wc,'
chebychevTypeIIBandpassFilter'
脉冲响应不变法设计滤波器:
[N,Wc]=ellipord(wp,ws,Ap,As);
[b,a]=ellip(N,Ap,As,Wc,'
Í
Ö
Ô
²
´
ø
¨
Â
Ë
Æ
÷
'
双线性变换法设计巴特沃斯型滤波器:
[num,den]=butter(N,Wc,'
[numd,dend]=bilinear(num,den,Fs);
axis([0,1,-120,0])
双线性变换法设计切比雪夫I型滤波器:
[d,f]=bilinear(b,a,Fs);
双线性变换法设计切比雪II型滤波器:
双线性变换法设计椭圆型滤波器:
椭圆型滤波器'
2.对实验现象、实验结果的分析及其结论
思考题:
从原型模拟低通滤波器变换到各种类型的数字滤波器需经过哪些步骤?
答:
先从模拟原型低通滤波器通过s域转换成各种类型的模拟滤波器,再通过脉冲不变法或双线性变换法转换到数字滤波器。
具体为如下操作:
(1)确定数字低通滤波器的技术指标:
通带边界频率、通带最大衰减、阻带截止频率、阻带最小衰减;
(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标;
(3)按照模拟低通滤波器的技术指标设计过渡模拟低通滤波器;
(4)用所选的转换方法,将模拟滤波器H(s)转换成数字低通滤波器系统函数H(z)。
用MATLAB进行数字滤波器的设计的步骤如下:
(1)将设计指标归一化处理。
如果采用双线性变换法,还需进行预畸变。
(2)根据归一化频率,确定最小阶数N和频率参数Wn。
可供选用的阶数择函数有:
buttord,cheblord,cheb2ord,ellipord等。
(3)运用最小阶数N设计模拟低通滤波器原型。
模拟低通滤波器的创建函数有:
buttap,cheblap,cheb2ap,ellipap和besselap,这些函数输出的是零极点式形式,还要用zp2tf函数转换成分子分母多项式形式。
如果想根据最小阶数直接设计模拟低通滤波器原型,可用butter,chebyl,cheby2,ellip,bessel等函数,只是注意要将函数中的Wn设为1。
(4)根据第2步的频率参数Wn,模拟低通滤波原型转换模拟低通、高通、带通、带阻滤波器,可用函数分别是:
lp21p,lp2hp,lp2bp,lp2bs。
(5)运用脉冲响应不变法或双线性变法把模滤波器转数字滤波器,调用的函数是impinvar和bilinear。
脉冲响应不变法适用于采样频率大于4倍截止频率的锐截止低通带通滤波器。
(6)根据输出的分子分母系数,调用函数buttord计算N和wc,有系数向量可以写出数字滤波器系统函数Z,再用freqz函数验证设计结果。
结论:
由于模拟滤波器设计技术已非常成熟,且可得闭合形式的解,因此在设计IIR数字滤波器时,一般是通过模拟滤波器来设计数字滤波器。
在IIR数字滤波器设计中,模拟滤波器