综合设计六 IIR滤波器设计.docx
- 文档编号:30836678
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:41
- 大小:1.53MB
综合设计六 IIR滤波器设计.docx
《综合设计六 IIR滤波器设计.docx》由会员分享,可在线阅读,更多相关《综合设计六 IIR滤波器设计.docx(41页珍藏版)》请在冰豆网上搜索。
综合设计六IIR滤波器设计
一、数字信号处理
实验报告
实验名称:
离散时间信号通过线性时不变系统
姓名:
专业:
年级:
学号:
指导教师:
一、综合设计目的
(1)掌握信号通过IIR系统的实现方法。
(2)了解直接型和级联型网络结构实现IIR滤波时的量化效应。
二、实验原理
(1)根据滤波器技术指标计算数字滤波器阶数。
(2)根据滤波器技术和通/阻带截止频率计算数字滤波器的系统函数。
(3)系统量化对不同结构的敏感程度不同。
三、实验过程
①对数据一进行处理
代码:
closeall;clc;clearall;qq=16;
[y,fs,bits]=wavread('C:
\Users\ET\Desktop\×ÛºÏÉè¼Æ\Êý¾Ý\´ø¸ÉÈŵÄÒôÀÖÐźÅIIR\music1-1.wav');
Wp=2*900;Ws=2*1500;Rp=0.1;Rs=60;Fs=32000;%ÉèÖÃÂ˲¨Æ÷²ÎÊý
wp=Wp/Fs;ws=Ws/Fs;
%[N,Wpo]=cheb2ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò2Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby2(N,Rs,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=cheb1ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò1Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby1(N,Rp,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=buttord(wp,ws,Rp,Rs);%Çó°ÍÌØÎÖ˹Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=butter(N,Wpo);%Éè¼ÆÂ˲¨Æ÷
[N,Wpo]=ellipord(wp,ws,Rp,Rs);%ÇóÍÖÔ²Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
[b,a]=ellip(N,Rp,Rs,Wpo);%Éè¼ÆÍÖÔ²Â˲¨Æ÷
[h,w]=freqz(b,a,512);%ÇóÂ˲¨Æ÷µÄ·ùƵÏìÓ¦
h=20*log10(abs(h)/max(abs(h)));
bqr=intbR(b,qq);aqr=intbR(a,qq);
[hr,wr]=freqz(bqr,aqr,512);
hr=20*log10(abs(hr)/max(abs(hr)));
[sos,g]=tf2sos(b,a);
b1=sos(1,1:
3);a1=sos(1,4:
6);bqr1=intbR(b1,qq);aqr1=intbR(a1,qq);[h1,w1]=freqz(bqr1,aqr1,512);sos1(1,1:
6)=[bqr1aqr1];
b2=sos(2,1:
3);a2=sos(2,4:
6);bqr2=intbR(b2,qq);aqr2=intbR(a2,qq);[h2,w1]=freqz(bqr2,aqr2,512);sos1(2,1:
6)=[bqr2aqr2];
b3=sos(3,1:
3);a3=sos(3,4:
6);bqr3=intbR(b3,qq);aqr3=intbR(a3,qq);[h3,w1]=freqz(bqr3,aqr3,512);sos1(3,1:
6)=[bqr3aqr3];
%b4=sos(4,1:
3);a4=sos(4,4:
6);bqr4=intbR(b4,qq);aqr4=intbR(a4,qq);[h4,w1]=freqz(bqr4,aqr4,512);sos1(4,1:
6)=[bqr4aqr4];
%b5=sos(5,1:
3);a5=sos(5,4:
6);bqr5=intbR(b5,qq);aqr5=intbR(a5,qq);[h5,w1]=freqz(bqr5,aqr5,512);sos1(5,1:
6)=[bqr5aqr5];
%b6=sos(6,1:
3);a6=sos(6,4:
6);bqr6=intbR(b6,qq);aqr6=intbR(a6,qq);[h6,w1]=freqz(bqr6,aqr6,512);sos1(6,1:
6)=[bqr6aqr6];
%b7=sos(7,1:
3);a7=sos(7,4:
6);bqr7=intbR(b7,qq);aqr7=intbR(a7,qq);[h7,w1]=freqz(bqr7,aqr7,512);sos1(7,1:
6)=[bqr7aqr7];
%b8=sos(8,1:
3);a8=sos(8,4:
6);bqr8=intbR(b8,qq);aqr8=intbR(a8,qq);[h8,w1]=freqz(bqr8,aqr8,512);sos1(8,1:
6)=[bqr8aqr8];
%b9=sos(9,1:
3);a9=sos(9,4:
6);bqr9=intbR(b9,qq);aqr9=intbR(a9,qq);[h9,w1]=freqz(bqr9,aqr9,512);sos1(9,1:
6)=[bqr9aqr9];
hh=h1.*h2.*h3;%.*h4.*h5.*h6;%.*h7.*h8;%.*h9;
hh=20*log10(abs(hh)/max(abs(hh)));
figure
(1)
specgram(y);
title('ÔÐźÅÓïͼ');
figure
(2);
plot((0:
511)/512,h,'g');holdon;
%figure(7);
plot((0:
511)/512,hr,'b');holdon;
%figure(8);
plot((0:
511)/512,hh,'r');
%title('ÇбÈÑ©·ò2ÐÍ£¨9½×£©Â˲¨Æ÷·ùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1ÐÍ£¨9½×£©Â˲¨Æ÷·ùƵÏìӦͼ');
title('°ÍÌØÎÖ˹(13½×)Â˲¨Æ÷·ùƵÏìӦͼ');
%title('ÍÖÔ²ÐÍ(6½×)Â˲¨Æ÷·ùƵÏìӦͼ');
legend('ÔÂ˲¨Æ÷','Ö±½ÓÁ¿»¯','¼¶ÁªÁ¿»¯','g','b','r');
yy=filter(bqr,aqr,y);
Y=sosfilt(sos1,y);
figure(3);
plot((0:
2097151)*2/2097152,20*log10(abs(fft(y,2097152))/max(abs(fft(y,2097152)))),'g');holdon;
plot((0:
2097151)*2/2097152,20*log10(abs(fft(yy,2097152))/max(abs(fft(yy,2097152)))),'b');holdon;
plot((0:
2097151)*2/2097152,20*log10(abs(fft(Y,2097152))/max(abs(fft(Y,2097152)))),'r');
xlabel('\it\omega/\it\pi');
ylabel('dB');
%title('ÇбÈÑ©·ò2ÐÍ£¨9½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1ÐÍ£¨9½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
title('°ÍÌØÎÖ˹(13½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('ÍÖÔ²ÐÍ(6½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
legend('ÔÐźÅ','Ö±½ÓÐÍ','¼¶Áª½á¹¹','g','b','r');
figure(4);
zplane(b,a);
axis([-1.51.5-1.51.5]);
%title('Á¿»¯Ç°ÇбÈÑ©·ò2ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
%title('Á¿»¯Ç°ÇбÈÑ©·ò1ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
title('Á¿»¯Ç°°ÍÌØÎÖ˹£¨13½×£©µÄÁ㼫µãͼ');
%title('Á¿»¯ÍÖÔ²ÐÍ£¨6½×£©µÄÁ㼫µãͼ');
figure(5);zplane(bqr,aqr);
axis([-1.51.5-1.51.5]);
%title('Ö±½ÓÁ¿»¯ºóÇбÈÑ©·ò2ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
%title('Ö±½ÓÁ¿»¯ºóÇбÈÑ©·ò1ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
title('Ö±½ÓÁ¿»¯ºó°ÍÌØÎÖ˹£¨13½×£©µÄÁ㼫µãͼ');
%title('Ö±½ÓÁ¿»¯ºóÍÖÔ²ÐÍ£¨6½×£©µÄÁ㼫µãͼ');
figure(6);
zplane(bqr1,aqr1);holdon;
zplane(bqr2,aqr2);holdon;
zplane(bqr3,aqr3);holdon;
%zplane(bqr4,aqr4);holdon;
%zplane(bqr5,aqr5);holdon;
%zplane(bqr6,aqr6);holdon;
%zplane(bqr7,aqr7);holdon;
%zplane(bqr8,aqr8);holdon;
%zplane(bqr9,aqr9);
axis([-1.51.5-1.51.5]);
%title('¼¶ÁªÁ¿»¯ºóÇбÈÑ©·ò2ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
%title('¼¶ÁªÁ¿»¯ºóÇбÈÑ©·ò1ÐÍ£¨9½×£©µÄÁ㼫µãͼ');
title('¼¶ÁªÁ¿»¯ºó°ÍÌØÎÖ˹£¨13½×£©µÄÁ㼫µãͼ');
%title('¼¶ÁªÁ¿»¯ºóÍÖÔ²ÐÍ£¨6½×£©µÄÁ㼫µãͼ');
%sound(y,fs);
%sound(yy,fs);
%sound(Y,fs);
figure(7);
specgram(Y);
小结一
1、根据零极点图的对比我们发现,经过直接型量化后的滤波器的极点有明显变化,而经过级联型后的滤波器的零极点位置基本没什么变化。
2、从所给的滤波器参数中看出通带很窄,说明滤波器的极点分布的相对较为密集,而直接型量化对此类的极点分布导致的系数量化误差敏感性很大。
3、通过Matlab的计算,巴特沃斯的阶数为13,可以算是高阶滤波器,而其在过直接型后零极点分布跑出单位圆的最多,这也应证了高阶直接型滤波器对系数量化误差要敏感的多。
②对数据二的处理
代码:
clc;clear;
[y,fs]=wavread('C:
\Users\ET\Desktop\×ÛºÏÉè¼Æ\Êý¾Ý\´ø¸ÉÈŵÄÒôÀÖÐźÅIIR\music1-2.wav');
wp=0.4;ws=0.55;Rp=0.1;Rs=110;Fs=32000;%ÉèÖÃÂ˲¨Æ÷²ÎÊý
%[N,Wpo]=cheb2ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò2Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby2(N,Rs,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=cheb1ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò1Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby1(N,Rp,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=buttord(wp,ws,Rp,Rs);%Çó°ÍÌØÎÖ˹Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=butter(N,Wpo);%Éè¼ÆÂ˲¨Æ÷
[N,Wpo]=ellipord(wp,ws,Rp,Rs);%ÇóÍÖÔ²Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
[b,a]=ellip(N,Rp,Rs,Wpo);%Éè¼ÆÍÖÔ²Â˲¨Æ÷
[h,w]=freqz(b,a,512);%ÇóÂ˲¨Æ÷µÄ·ùƵÏìÓ¦
h=20*log10(abs(h)/max(abs(h)));%·ù¶È¹éÒ»
figure(5);plot((0:
511)/512,h);
%title('ÇбÈÑ©·ò2ÐÍ£¨15½×£©Â˲¨Æ÷·ùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1ÐÍ£¨15½×£©Â˲¨Æ÷·ùƵÏìӦͼ');
%title('°ÍÌØÎÖ˹(31½×)Â˲¨Æ÷·ùƵÏìӦͼ');
title('ÍÖÔ²ÐÍ(10½×)Â˲¨Æ÷·ùƵÏìӦͼ');
yy=filter(b,a,y);
figure
(1);
zplane(b,a);
%title('ÇбÈÑ©·ò2£¨15½×£©Á㼫µãͼ');
%title('ÇбÈÑ©·ò1£¨15½×£©Á㼫µãͼ');
%title('°ÍÌØÎÖ˹£¨31½×£©Á㼫µãͼ');
title('ÍÖÔ²ÐÍ£¨10½×£©Á㼫µãͼ');
figure
(2);
plot((0:
2097151)*2/2097152,20*log10(abs(fft(y,2097152))/max(abs(fft(y,2097152)))),'g');holdon;
plot((0:
2097151)*2/2097152,20*log10(abs(fft(yy,2097152))/max(abs(fft(yy,2097152)))),'b');
xlabel('\it\omega/\it\pi');
ylabel('dB');
%title('ÇбÈÑ©·ò2£¨15½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1£¨15½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('°ÍÌØÎÖ˹£¨31½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
title('ÍÖÔ²ÐÍ£¨10½×£©Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
legend('ÔÐźÅ','Â˲¨ºó','g','b');
figure(3);specgram(y);
%title('ÇбÈÑ©·ò2£¨15½×£©Â˲¨Ç°Óïͼ');
%title('ÇбÈÑ©·ò1£¨15½×£©Â˲¨Ç°Óïͼ');
%title('°ÍÌØÎÖ˹Â˲¨Ç°Óïͼ');
title('ÍÖÔ²ÐÍ£¨10½×£©Â˲¨Ç°Óïͼ');
figure(4);
specgram(yy);
%title('ÇбÈÑ©·ò2£¨15½×£©Â˲¨ºóÓïͼ');
%title('ÇбÈÑ©·ò1£¨15½×£©Â˲¨ºóÓïͼ');
%title('°ÍÌØÎÖ˹£¨31½×£©Â˲¨ºóÓïͼ');
title('ÍÖÔ²ÐÍ£¨10½×£©Â˲¨ºóÓïͼ');
sound(yy,fs);
小结二
1、我们对四种滤波器设计的参数均一致,进行比较发现,巴特沃斯、切I、切II、椭圆的阶数分别为31、15、15、10。
2、31阶的巴特沃斯从语图看,虽然把干扰都滤掉了,但是阶数太高,相当不易实现。
3、通过综合对比发现,椭圆滤波器的效果相对较好。
③对数据三的处理:
代码:
clc;clear;closeall;
[y,fs]=wavread('C:
\Users\ET\Desktop\×ÛºÏÉè¼Æ\Êý¾Ý\´ø¸ÉÈŵÄÒôÀÖÐźÅIIR\music1-3.wav');
wp=0.475;ws=0.85;Rp=0.1;Rs=100;Fs=32000;%ÉèÖÃÂ˲¨Æ÷²ÎÊý
%[N,Wpo]=cheb2ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò2Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby2(N,Rs,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=cheb1ord(wp,ws,Rp,Rs);%ÇóÇбÈÑ©·ò1Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=cheby1(N,Rp,Wpo);%Éè¼ÆÂ˲¨Æ÷
%[N,Wpo]=buttord(wp,ws,Rp,Rs);%Çó°ÍÌØÎÖ˹Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
%[b,a]=butter(N,Wpo);%Éè¼ÆÂ˲¨Æ÷
[N,Wpo]=ellipord(wp,ws,Rp,Rs);%ÇóÍÖÔ²Ð͹éÒ»»¯Ä£ÄâµÍͨÂ˲¨Æ÷µÄ½×Êý
[b,a]=ellip(N,Rp,Rs,Wpo);%Éè¼ÆÍÖÔ²Â˲¨Æ÷
[h,w]=freqz(b,a,512);%ÇóÂ˲¨Æ÷µÄ·ùƵÏìÓ¦
h=20*log10(abs(h)/max(abs(h)));%·ù¶È¹éÒ»
[sos,g]=tf2sos(b,a);
Y=sosfilt(sos,y);
%wavwrite(Y,Fs,'ÇбÈÑ©·ò1-2');
figure
(1);
plot((0:
511)/512,h);
%title('ÇбÈÑ©·ò2ÐÍ(7½×)Â˲¨Æ÷·ùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1ÐÍ£¨7½×£©Â˲¨Æ÷·ùƵÏìӦͼ');
%title('°ÍÌØÎÖ˹(9½×)Â˲¨Æ÷·ùƵÏìӦͼ');
title('ÍÖÔ²ÐÍ(6½×)Â˲¨Æ÷·ùƵÏìӦͼ');
figure
(2);
plot((0:
2097151)*2/2097152,20*log10(abs(fft(y,2097152))/max(abs(fft(y,2097152)))),'g');holdon;
plot((0:
2097151)*2/2097152,20*log10(abs(fft(Y,2097152))/max(abs(fft(Y,2097152)))),'b');
xlabel('\it\omega/\it\pi');
ylabel('dB');
%title('ÇбÈÑ©·ò2(7½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('ÇбÈÑ©·ò1(7½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
%title('°ÍÌØÎÖ˹(9½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
title('ÍÖÔ²ÐÍ(6½×)Â˲¨Ç°ºóÐźŷùƵÏìӦͼ');
legend('ÔÐźÅ','Â˲¨ºó','g','b');
figure(3);
zplane(b,a);
%title('ÇбÈÑ©·ò2£¨7½×£©µÄÁ㼫µãͼ');
%title('ÇбÈÑ©·ò1(7½×)µÄÁ㼫µãͼ');
%title('°ÍÌØÎÖ˹(9½×)µÄÁ㼫µãͼ');
title('ÍÖÔ²ÐÍ(6½×)µÄÁ㼫µãͼ');
figure(4);
specgram(y);
%title('ÇбÈÑ©·ò2(7½×)Â˲¨Ç°ÐźŵÄÓïͼ');
%title('ÇбÈÑ©·ò1(7½×)Â˲¨Ç°ÐźŵÄÓïͼ');
%title('°ÍÌØÎÖ˹(9½×)Â˲¨Ç°ÐźŵÄÓïͼ');
title('ÍÖÔ²ÐÍ(6½×)Â˲¨Ç°ÐźŵÄÓïͼ');
figure(5);
specgram(Y);
%title('ÇбÈÑ©·ò2(7½×)Â˲¨ºóÐźŵÄÓïͼ');
%title('ÇбÈÑ©·ò1(7½×)Â˲¨ºóÐźŵÄÓïͼ');
%title('°ÍÌØÎÖ˹(9½×)Â˲¨ºóÐźŵÄÓïͼ');
title('ÍÖÔ²ÐÍ(6½×)Â˲¨Ç°ÐźóºÅµÄÓïͼ');
sound(Y,fs);
小结三
1、滤波器参数相同的情况下,巴特沃斯、切I、切II、椭圆的阶数分别为9、7、7、6。
2、综合实际情况考虑选择切比雪夫I型的滤波器比较好
四、设计总结
1、设计中级联量化相对于直接量化要好一些,极点变化较小,尤其是当滤波器阶数较高的时候。
2、设计时要考虑实际情况,滤波器并非滤除效果越理想越好,要在符合要求的情况下尽可能的考虑阶数等的影响。
3、声音信号为4KHz左右,可以用滤波器的远端特性增加过度带长度,从而降低滤波器的阶数。
4、阻带衰减在满足要求的情况下应该尽量小,降低滤波器阶数,从而降低滤波器的设计难度。
附录:
量化子程序
functionbt=intbR(d,b)
m=1;dt1=abs(d);
whilefix(dt1)>0
dt1=abs(d)/(2^m);
m=m+1;
end
bt=fix(dt1*2^b);
bt=sign(d).*bt.*2^(m-b-1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合设计六 IIR滤波器设计 综合 设计 IIR 滤波器