资源描述:
《iir和fir滤波器设计专题研讨 《数字信号处理》课程研究性学习报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数字信号处理》课程研究性学习报告31IIR和FIR滤波器设计专题研讨【目的】(1)掌握根据滤波器指标设计IIR和FIR数字滤波器的原理和方法。(2)熟悉通过IIR和FIR数字滤波器进行实际系统设计的方法。(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。【研讨题目】1.设计一个数字滤波器,在频率低于的范围内,低通幅度特性近似为常数,并且不低于0.75dB。在频率和之间,阻带衰减至少为20dB。(1)试求满足这些条件的最低阶Butterworth滤波器。(2)试求满足这些条件的最低阶C
2、hebyshevI滤波器。(3)自主选择一段带限信号,通过所设计的(1)、(2)两种滤波器,比较各自的输入和输出信号。讨论两种滤波器在结构和性能上的差异。【题目分析】本题讨论模拟滤波器和数字滤波器的设计。结合课本分析各类滤波器的特性。【IIR模拟滤波器设计的基本方法】【仿真结果】1)31N=8N=231N=12)31N=4N=231N=1【结果分析】BW的NCB1的N可以根据分式的关系来确定N的最小值BW的N和Ap成正比CB1的N和Wp成反比在对其取值的时候可以根据这样的规律实验,模拟的结果和理论是相同
3、的。从图像上可以看出N的值就是通频带的起伏的次数,N=1就起伏一次,N=2就起伏2次,N=8就接近连成一条线。【自主学习内容】【阅读文献】【仿真程序】1)Wp=0.2613*pi;Ws=0.4018*pi;Ap=0.75;As=20;Fs=1;wp=Wp*Fs;ws=Ws*Fs;N=buttord(wp,ws,Ap,As,'s');31wc=wp/(10^(0.1*Ap)-1)^(1/N/2);[numa,dena]=butter(N,wc,'s');[numd,dend]=impinvar(numa,
4、dena,Fs);w=linspace(0,pi,1024);h=freqz(numd,dend,w);norm=max(abs(h));numd=numd/norm;plot(w/pi,20*log10(abs(h/norm)));xlabel('butter');ylabel('Ap=0.75,dB');disp('N=');disp(N);2)Wp=0.2613*pi;Ws=0.4018*pi;Ap=0.75;As=20;Fs=1;wp=Wp*Fs;ws=Ws*Fs;N=cheb1ord(wp,w
5、s,Ap,As,'s');wc=wp/(10^(0.1*Ap)-1)^(1/N/2);[numa,dena]=cheby1(N,Ap,wc,'s');[numd,dend]=impinvar(numa,dena,Fs);w=linspace(0,pi,1024);h=freqz(numd,dend,w);norm=max(abs(h));numd=numd/norm;plot(w/pi,20*log10(abs(h/norm)));xlabel('cheby1');ylabel('Ap=0.75,dB'
6、);disp('N=');disp(N);2.分别用Hamming窗,Blackman窗和Kaiser窗设计,满足下列指标的FIR低通滤波器:(1)画出所设计滤波器的幅频响应。(2)比较这三种窗的设计结果。【题目分析】本题讨论窗函数法设计数字FIR滤波器。结合课本分析不同窗函数法的设计结果。【FIR模拟滤波器设计的基本方法】【仿真结果】3131【结果分析】31【仿真程序】Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;%hanningfigure(1)N=floor(6.2*pi/(W
7、s-Wp));N=mod(N+1,2)+N;M=N-1;w=hanning(N)';Wc=(Wp+Ws)/2;k=0:M;hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);h=hd.*w;omega=linspace(0,pi,512);mag=freqz(h,[1],omega);plot(omega/pi,20*log10(abs(mag)));gridonxlabel('Normalizedfrequency')ylabel('GainindB')title('hanning')
8、%hammingfigure(2)N=floor(7*pi/(Ws-Wp));N=mod(N+1,2)+N;M=N-1w=hamming(N)';Wc=(Wp+Ws)/2;k=0:M;hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);h=hd.*w;omega=linspace(0,pi,512);mag=freqz(h,[1],omega);plot(omega/pi,20*log10(abs(mag)));gridon