1、数字信号课程设计2010秋季学期数字信号处理课程设计IIR低/高通、带通/阻数字滤波器的MATLAB实现输入信号:频率为59Hz的周期方波x(t)的抽样序列xk,其频谱为X(m)。数字滤波器的技术指标:低通截止频率为0.1 ,高通截止频率为0.5 ,带通通带截止频率为0.1 和0.5 ,带阻阻带截止频率为0.2 和0.3 ,通带衰减最大1dB,阻带衰减最小50dB。数字滤波器的单位冲击响应:hk,其幅度谱为H()。输出信号:yk=xk*hk,则其频谱为Y(m)。一、MATLAB实现程序I脉冲响应不变法设计BW型低通数字滤波器,指标:Wp=0.1*pi ;Ws=0.55*pi ;Ap=1;As=
2、50;程序如下:%方波抽样序列及其频谱f=59;N=80;T=1/f;dt=T/N;n=0:N-1;tn=n*dt;x=square(2*pi*f*tn,50);L=256;X=fftshift(fft(x,L);w=linspace(-pi,pi,L)/pi;%脉冲响应不变法设计BW型LP DF%数字滤波器指标Wp=0.1*pi ;Ws=0.55*pi ;Ap=1;As=50;Fs=1;%确定原型低通滤波器指标wp=Wp*Fs;ws=Ws*Fs;%设计滤波器N,wc=buttord(wp,ws,Ap,As,s)num,den=butter(N,wc,s);numd,dend=impinvar
3、(num,den,Fs);%幅度频率响应曲线omega1=linspace(0,Wp,500);omega2=linspace(Wp,Ws,200);omega3=linspace(Ws,pi,500);H1=20*log10(abs(freqz(numd,dend,omega1);H2=20*log10(abs(freqz(numd,dend,omega2);H3=20*log10(abs(freqz(numd,dend,omega3);%与给定的指标对比fprintf(Ap=%.4fn,max(-H1);fprintf(As=%.4fn,max(-H3);%获取冲击响应h(k)h,k=im
4、pz(numd,dend);%获取输出信号及其频谱y=conv(x,h);Y=fftshift(fft(y,L);%画图subplot(3,2,1),stem(n,x,filled);xlabel(k);ylabel(xk);title(输入一个周期方波序列);subplot(3,2,2),plot(w,abs(X);xlabel(w (pi rad);ylabel(X(m);title(输入一个周期方波序列频谱);subplot(3,2,3),plot(k,h);xlabel(k);ylabel(hk);title(数字滤波器的单位冲击响应序列);subplot(3,2,4),plot(om
5、ega1 omega2 omega3/pi,H1 H2 H3);ylabel(幅度dB);xlabel(w (pi rad);title(数字滤波器幅度谱);axis(0,1,-60,10);grid on subplot(3,2,5),plot(y);xlabel(k);ylabel(yk);title(输出序列);subplot(3,2,6),plot(w,abs(Y);xlabel(w (pi rad);ylabel(Y(m);title(输出序列频谱);II双线性变换法设计BW型高通数字滤波器,指标:Wp=0.5*pi ;Ws=0.12*pi ;Ap=1;As=50;程序如下:%方波抽
6、样序列及其频谱f=59;N=80;T=1/f;dt=T/N;n=0:N-1;tn=n*dt;x=square(2*pi*f*tn,50);L=256;X=fftshift(fft(x,L);w=linspace(-pi,pi,L)/pi;%双线性变换法设计BW型HP DF%数字滤波器指标Wp=0.5*pi ;Ws=0.12*pi ;Ap=1;As=50;Ts=2;Fs=1/Ts;%转换成模拟滤波器指标wph=tan(Wp/2);wsh=tan(Ws/2);%确定原型低通滤波器指标wp=1/wph;ws=1/wsh;%设计滤波器N,wc=buttord(wp,ws,Ap,As,s)num,den
7、=butter(N,wc,s);numt,dent=lp2hp(num,den,1);numd,dend=bilinear(numt,dent,Fs);%幅度频率响应曲线omega1=linspace(0,Ws,500);omega2=linspace(Ws,Wp,200);omega3=linspace(Wp,pi,500);H1=20*log10(abs(freqz(numd,dend,omega1);H2=20*log10(abs(freqz(numd,dend,omega2);H3=20*log10(abs(freqz(numd,dend,omega3);%与给定的指标对比fprint
8、f(As=%.4fn,min(-H1);fprintf(Ap=%.4fn,min(-H2);%获取冲击响应h(k)h,k=impz(numd,dend);%获取输出信号及其频谱y=conv(x,h);Y=fftshift(fft(y,L);%画图subplot(3,2,1),stem(n,x,filled);xlabel(k);ylabel(xk);title(输入一个周期方波序列);subplot(3,2,2),plot(w,abs(X);xlabel(w (pi rad);ylabel(X(m);title(输入一个周期方波序列频谱);subplot(3,2,3),plot(k,h);xl
9、abel(k);ylabel(hk);title(数字滤波器的单位冲击响应序列);subplot(3,2,4),plot(omega1 omega2 omega3/pi,H1 H2 H3);ylabel(幅度dB);xlabel(w (pi rad);title(数字滤波器幅度谱);axis(0,1,-60,10);grid onsubplot(3,2,5),plot(y);xlabel(k);ylabel(yk);title(输出序列);subplot(3,2,6),plot(w,abs(Y);xlabel(w (pi rad);ylabel(Y(m);title(输出序列频谱);III 双
10、线性变换法设计BW型带通数字滤波器,指标:Wp1=0.1*pi ;Wp2=0.5*pi;Ws1=0.04*pi;Ws2=0.75*pi ;Ap=1;As=50;程序如下:%方波抽样序列及其频谱f=59;N=80;T=1/f;dt=T/N;n=0:N-1;tn=n*dt;x=square(2*pi*f*tn,50);L=256;X=fftshift(fft(x,L);w=linspace(-pi,pi,L)/pi;%双线性变换法设计BW型BP DF%数字滤波器指标Wp1=0.1*pi ;Wp2=0.5*pi;Ws1=0.04*pi;Ws2=0.75*pi ;Ap=1;As=50;%转换成模拟滤波
11、器指标Ts=2;Fs=1/Ts;wp1=tan(Wp1/2);wp2=tan(Wp2/2);ws1=tan(Ws1/2);ws2=tan(Ws2/2);B=wp2-wp1;w0=(wp1*wp2)0.5;%确定原型低通滤波器指标bpws1=(ws12-w02)/(B*ws1);bpws2=(ws22-w02)/(B*ws2);wp=1;ws=min(abs(bpws1),abs(bpws2);%设计滤波器N,wc=buttord(wp,ws,Ap,As,s)num,den=butter(N,wc,s);numt,dent=lp2bp(num,den,w0,B);numd,dend=biline
12、ar(numt,dent,Fs);%幅度频率响应曲线omega1=linspace(0,Ws1,500);omega2=linspace(Ws1,Wp1,200);omega3=linspace(Wp1,Wp2,500);omega4=linspace(Wp2,Ws2,500);omega5=linspace(Ws2,pi,200);H1=20*log10(abs(freqz(numd,dend,omega1);H2=20*log10(abs(freqz(numd,dend,omega2);H3=20*log10(abs(freqz(numd,dend,omega3);H4=20*log10(
13、abs(freqz(numd,dend,omega4);H5=20*log10(abs(freqz(numd,dend,omega5);%与给定的指标对比fprintf(As1=%.4fn,min(-H1);fprintf(Ap1=%.4fn,min(-H2);fprintf(Ap2=%.4fn,min(-H4);fprintf(As2=%.4fn,max(-H4);%获取冲击响应h(k)h,k=impz(numd,dend);%获取输出信号及其频谱y=conv(x,h);Y=fftshift(fft(y,L);%画图subplot(3,2,1),stem(n,x,filled);xlabel
14、(k);ylabel(xk);title(输入一个周期方波序列);subplot(3,2,2),plot(w,abs(X);xlabel(w (pi rad);ylabel(X(m);title(输入一个周期方波序列频谱);subplot(3,2,3),plot(k,h);xlabel(k);ylabel(hk);title(数字滤波器的单位冲击响应序列);subplot(3,2,4),plot(omega1 omega2 omega3 omega4 omega5/pi,H1 H2 H3 H4 H5);ylabel(幅度dB);xlabel(w (pi rad);title(数字滤波器幅度谱)
15、;axis(0,1,-60,10);grid onsubplot(3,2,5),plot(y);xlabel(k);ylabel(yk);title(输出序列);subplot(3,2,6),plot(w,abs(Y);xlabel(w (pi rad);ylabel(Y(m);title(输出序列频谱);IV 双线性变换法设计BW型带阻数字滤波器,指标:Wp1=0.12*pi ;Wp2=0.48*pi;Ws1=0.2*pi;Ws2=0.3*pi ;Ap=1;As=50;程序如下:%方波抽样序列及其频谱f=59;N=80;T=1/f;dt=T/N;n=0:N-1;tn=n*dt;x=squar
16、e(2*pi*f*tn,50);L=256;X=fftshift(fft(x,L);w=linspace(-pi,pi,L)/pi;%双线性变换法设计BW型BS DF%数字滤波器指标Wp1=0.12*pi ;Wp2=0.48*pi;Ws1=0.2*pi;Ws2=0.3*pi ;Ap=1;As=50;%转换成模拟滤波器指标Ts=2;Fs=1/Ts;wp1=tan(Wp1/2);wp2=tan(Wp2/2);ws1=tan(Ws1/2);ws2=tan(Ws2/2);B=ws2-ws1;w0=(ws1*ws2)0.5;%确定原型低通滤波器指标bpwp1=(B*wp1)/(-wp12+w02);bp
17、wp2=(B*wp2)/(-wp22+w02);ws=1;wp=min(abs(bpwp1),abs(bpwp2);%设计滤波器N,wc=buttord(wp,ws,Ap,As,s)num,den=butter(N,wc,s);numt,dent=lp2bs(num,den,w0,B);numd,dend=bilinear(numt,dent,Fs);%幅度频率响应曲线omega1=linspace(0,Wp1,200);omega2=linspace(Wp1,Ws1,500);omega3=linspace(Ws1,Ws2,500);omega4=linspace(Ws2,Wp2,500);
18、omega5=linspace(Wp2,pi,200);H1=20*log10(abs(freqz(numd,dend,omega1);H2=20*log10(abs(freqz(numd,dend,omega2);H3=20*log10(abs(freqz(numd,dend,omega3);H4=20*log10(abs(freqz(numd,dend,omega4);H5=20*log10(abs(freqz(numd,dend,omega5);%与给定的指标对比fprintf(Ap1=%.4fn,max(-H1);fprintf(As1=%.4fn,max(-H2);fprintf(A
19、s2=%.4fn,max(-H4);fprintf(Ap2=%.4fn,min(-H4);%获取冲击响应h(k)h,k=impz(numd,dend);%获取输出信号及其频谱y=conv(x,h);Y=fftshift(fft(y,L);%画图subplot(3,2,1),stem(n,x,filled);xlabel(k);ylabel(xk);title(输入一个周期方波序列);subplot(3,2,2),plot(w,abs(X);xlabel(w (pi rad);ylabel(X(m);title(输入一个周期方波序列频谱);subplot(3,2,3),plot(k,h);xla
20、bel(k);ylabel(hk);title(数字滤波器的单位冲击响应序列);subplot(3,2,4),plot(omega1 omega2 omega3 omega4 omega5/pi,H1 H2 H3 H4 H5);ylabel(幅度dB);xlabel(w (pi rad);title(数字滤波器幅度谱);axis(0,1,-60,10);grid onsubplot(3,2,5),plot(y);xlabel(k);ylabel(yk);title(输出序列);subplot(3,2,6),plot(w,abs(Y);xlabel(w (pi rad);ylabel(Y(m);
21、title(输出序列频谱);二、仿真结果图形I低通数字滤波器II 高通数字滤波器III 带通数字滤波器IV 带阻数字滤波器三、结果分析及总结分析:题目中没有给出低通、高通、带通滤波器的阻带截频以及带阻滤波器的通带截频,根据题目要求我们可以有很多种选择,而根据选择不同,所得波形的清晰度也不太相同。考虑到实现滤波器的成本问题,我选择了能使滤波器在达到要求的设计指标时的阶数尽可能低的参数。另外,我在设计低通滤波器时采用了脉冲响应不变法,这样得到的波形更稳定,又发现设计题中所给定指标的高通,带通,带阻滤波器用脉冲响应不变法设计时,所得到的滤波器不稳定,故采用了双线性变换法设计。我通过设计滤波器了解了M
22、ATLAB的运行环境,从图形和程序两方面了解了四种滤波器的不同,让我在理论知识的了解方面更轻松.总结:以下是各种滤波器的阶数和所设计滤波器的通带衰减Ap和阻带衰减AsI 低通N =4wc =0.4097Ap=0.4902As=65.1339可以看出通带衰减和阻带衰减均符合设计要求。II 高通N =4wc =1.2431As=50.0000Ap=0.7017可以看出通带衰减和阻带衰减均符合设计要求。III 带通N =7wc =1.2262As1=52.6822Ap1=0.2431Ap2=0.2431As2=50.0000可以看出通带衰减和阻带衰减均符合设计要求。IV 带阻N =5wc =0.3162Ap1=0.8881As1=50.0000As2=50.0000Ap2=0.2896可以看出通带衰减和阻带衰减均符合设计要求。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2