资源描述:
《数字信号处理实验实验三》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验5脉冲响应不变法设计IIR数字滤波器一.实验目的1.掌握利用脉冲响应不变法设计IIR数字滤波器的原理及具体方法。2.加深理解数字滤波器和模拟滤波器之间的技术指标转化。3.常握脉冲响应不变法设计IIR数字滤波器的优缺点及适用范围。二、实验上机环境汁算机、MATLAB软件环境三.实验原理1、基本原理从时域响应出发,使数字滤波器的单位脉冲响应h(n)模仿模拟滤波器的单位冲激响应h(n)等于九(°的取样值。2、变换方法思路:HaG)」"换f九⑴_时域也T心(皿)=加〃)茨换(1)将Ha(s)进行部分分式展开Ak(2)对Ha(s)进行拉式变换(3)对ha(t)时域采样得到
2、h(n)NN/?(;?)=乂戎严5(〃门=工4(严)5(〃)Jr-lMH(二)=tM1一严J(4)对h(n)进行z变换3.设计步骤(1)确定数字滤波器的性能指标叫叫’Ao(2)将数字滤波器频率指标转换成响应的模拟滤波器频率指标(3)根据指标匕和4设计模拟滤波器丹心)。NA⑷将Ha(s)展成部分分式形式Ha(s)=y—oA=i$-Pk(5)把模拟极点pk转换成数字极点严丁,得到数字滤波器NH⑵二工nJ见HAs)至II。)间的变换关系为]1_zSkTlSkTs-skl-ez~z-e在MATLAB中有两种方法可以实现实现上述变换。方法1:利用residue函数和resid
3、uez函数实现脉冲响应不变变换法,实用方法如下:[r,p,k]=residue(b,a)[b/a]=residue(r/pzk)实现多项式形式W+•••+%77(沪。屛+・・・+。0和部分分式形式Z/(s)=+心)s_P之间的转换。[GP/k
4、=resic*uez(^a)[b.a^residuezfGP/k)实现多项式形式和部分分式形式+・・・+—-_+&]+y'+•••1-卩0之I、可的转换。方法2:matlab中提供了impinvar函数采用脉冲响应不变法实现模拟滤波器到数字滤波器的变换,其使用如下:[bz,az]=impinvar(b,a,fs)采用脉冲响应
5、不变法将模拟滤波器系统函数的系数向量b和a变换成为数字滤波器系统函数的系数向量bz和fs为采样频率(默认为1)。[bz,az]=impinvar(b,a)采样频率默认为1的情况下,釆用脉冲响应不变法将模拟滤波器变换为数字滤波器。四.实验内容1.设采样频率为fs二4kHz,采用脉冲响应不变法设计一个三阶巴特沃斯数字低通滤波器,其3dB截止频率为fc=lkHzo2.设采样频率为fs-lOkHz,设计数字低通滤波器,满足如下指标通带截止频率:fp二lkllz,通带波动:Rp二ldB阻带截止频率:fst=l.5kHz,阻带衰减:As=15dB要求分别采用巴特沃斯、切比雪夫I
6、型、切比雪夫II型和椭圆模拟原型滤波器及脉冲响应不变法进行设计。结合实验结果,分别讨论采用上述设计的数字滤波器是否都能满足给定指标要求,分析脉冲响应不变法设计IIR数字滤波器的优缺点及适用范围。五、实验结果及分析1.实验代码:»fs=4000;»fc=1000;»Wc=fc*2*pi;»b=WcA3;»a=[l2*Wc2*WcA2WcA3];»[bz/az]=impinvar(b/a/fs)bz=az=1.0000-0.39840.2475-0.0432»w=[0:500]*pi/500;»[H,w]=freqz(b乙az);»subplot(221);plot(w
7、/pi,abs(H));»gridon;xlabel(、omega(pi)');ylabel(‘
8、H(eAjAomega)
9、f);»subplot(222);plot(w/pi/20*logl0((abs(H))/max(abs(H))));»gridon;xlabel('omega(pi)');ylabel('
10、H(eAjAomega)
11、');»subplot(223);plot(w/pi,angle(H)/pi);»gridon;xlabel(,omega(pi),),ylabel(,PhaseofH(eAjAomega),);»grd=grpd
12、elay(bz,az,w);»subplot(224);plot(w/pi,grd);»gridon;xlabel(,omega(pi),),ylabel(,Groupdelay1);»G=tf(bz,az,0.1,,A,/variable;z-l)G=0.5813zA-l+0.2114zA-21-03984zA-l+0.2475zA-2-0.04321zA-3波形图如下:r@H_①serosF匸d方方0o)x(2.(1)巴特沃斯滤波器实验代码:»fs=10000;»fp=1000;»fst=1500;»Rp=l;»As=15;»Ap=Rp;»Wp=fp*2