1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数字信号处理实验3:用双线性变换法设计IIR滤波器

数字信号处理实验3:用双线性变换法设计IIR滤波器

时间:2019-09-21 17:48:42

相关推荐

数字信号处理实验3:用双线性变换法设计IIR滤波器

杭电_数字信号处理课程设计_实验3

一、实验目的

熟悉模拟Batterworth滤波器设计和用双线性变换法设计数字IIR 滤波器的方法。

二、实验要求及内容

实验题目:

1、(1) (2)必做,(3)选做

(1)编写用双线性变换法设计Batterworth低通IIR数字滤波器的程序,要求通带内频 率低于0.2π rad时,容许幅度误差在1dB之内,频率在0.3π rad到π rad之间的阻带衰减大与15dB。

(2)设计一个数字高通滤波器,要求通带截止频率wp=0.8π,通带衰减不大于3dB, 阻带截止频率ws, = 0.5π,阻带衰减不小于18dB, 希望采用巴特沃思滤波器。

(3)用双线性变换 设计-一个三阶巴特沃思数字带通,采样频率为fo= 720Hz,上、下边带截止频率分别为f = 60Hz,fz = 300Hz。

2、在屏幕上打印出数字滤波器的频率区间[0, π]上的幅频响应特性曲线。

3、在屏幕上打印出H(z)的分子,分母多项式系数。

实验代码:

(1)

wp = 0.2*pi;ws = 0.3*pi;rp = 1;rs = 15;Fs = 1;wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn] = buttord(wp1,ws1,rp,rs,'s');[Z,P,K] = buttap(N);[Bap,Aap] = zp2tf(Z,P,K);[b,a] = lp2lp(Bap,Aap,Wn);[bz,az] = bilinear(b,a,Fs);[H,W] = freqz(bz,az);disp(bz);disp(az);subplot(2,1,1);plot(W*Fs/pi,abs(H));grid on;xlabel('频率/Hz');ylabel('幅度');title('(a)');subplot(2,1,2);plot(W/pi,20*log10(abs(H)));grid on;xlabel('\omega/\pi');ylabel('幅度 (dB)');title('(b)');

(2)

wp = 0.8*pi;ws = 0.5*pi;Rp = 3;Rs = 18;Fs = 1;Ts = 1/Fs;wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');[b,a]=butter(N,Wn,'high','s');[Z,P,K]=buttap(N);[bz,az]=bilinear(b,a,Fs);[H,W]=freqz(bz,az);disp(bz);disp(az);subplot(2,1,1);plot(W*Fs/pi,abs(H));%幅频特性grid on;xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(W/pi,20*log10(abs(H)));%幅频特性(dB)grid on;xlabel('\omega/\pi');ylabel('幅度 (dB)');

(3)

Fs = 720;w1 = 2*Fs*tan(2*pi*60/(2*Fs));w2 = 2*Fs*tan(2*pi*300/(2*Fs));w4 = 2*Fs*tan(2*pi*320/(2*Fs));w3 = 2*Fs*tan(2*pi*40/(2*Fs));wp = [w1 w2];ws = [w3 w4];Rp = 3;Rs = 10;[N,Wn] = buttord(wp,ws,Rp,Rs,'s');[b,a] = butter(N,Wn,'s');[bz,az] = bilinear(b,a,Fs);[H,W] = freqz(bz,az);disp(N);disp(bz);disp(az);subplot(2,1,1);plot(W*Fs/(2*pi),abs(H));grid on;xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(W*Fs/(2*pi),20*log10(abs(H)));grid on;xlabel('频率/Hz');ylabel('幅度 (dB)');

三、实验结果与分析:

(1)结果与分析:

经检验,该结果符合题目要求。

(2)结果与分析:

经检验,该结果符合题目要求。

(3)结果与分析:

经检验,该结果符合题目要求。

四、实验总结:

通过本次实验,使我掌握了模拟Batterworth滤波器设计和用双线性变换法设计数字IIR 滤波器的方法。成功地完成本次实验,加深了我对matlab的理解,以及滤波器知识的深刻感悟。在实验中,同样也遇到了一些问题,比如一味地仿照教材上的例程,导致最终地滚降偏小,在细致的思考后,发现自己没有将模拟滤波器转换为数字滤波器,加上相应的语句后,完美地完成了题目的要求,这样解答问题的过程使我感受到了学习的乐趣,使我对数字信号处理这门课更加感兴趣。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。