《用窗函数法设计FIR数字滤波器(共6页).doc》由会员分享,可在线阅读,更多相关《用窗函数法设计FIR数字滤波器(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上用窗函数法设计FIR数字滤波器一、实验目的 1.掌握用窗函数法设计FIR数字滤波器的原理和方法。 2.熟悉线性相位FIR数字滤波器特征。 3.了解各种窗函数对滤波特性的影响。 二、实验仪器微型计算机 matlab软件三、实验原理和方法 如果所希望的滤波器的理想频率响应函数为 ,则其对应的单位脉冲响应为 = (2-1)窗函数设计法的基本原理是用有限长单位脉冲响应序列逼近。由于往往是无限长序列,且是非因果的,所以用窗函数将截断,并进行加权处理,得到: (2-2)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为: (2-3)式中,N为所选窗函数的长度。
2、由第七章可知,用窗函数法设计的滤波器性能取决于窗函数的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。 这样选定窗函数类型和长度N后,求出单位脉冲响应,并按式(2-3)求出。是否满足要求,要进行验算。一般在尾部加零使长度满足于2的整数次幂,以便用FFT计算。如果要观察细节,补零点数增多即可。如果不满足要求,则要重新选择窗函数类型和长度N,再次验算,直至满足要求。如果要求线性相位特性,则还必须满足 (2-4)根据上式中的正负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根
3、据设计的滤波特性正确选择其中一类。例如,要设计线性低通特征,可选择一类,而不能选一类。四、实验内容1.复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理掌握设计步骤。2.编写程序 编写能产生矩型窗、哈明窗、汉宁窗、莱克曼窗的窗函数子程序。 编写主程序。主程序框图如图开始读入窗口长度N计算hd(n)调窗函数子程序求(n)计算h(n)=hd(n)*(n)调FFT子程序对h(n)进行DFT调绘图子程序绘制幅频特性曲线相位特性曲线结束计算幅度特性和相位特性设 : (2-4) (2-5) (2-6)画图时,20lg打印幅度特性。第k点对应的频率。为使曲线包络更接近的幅度特性曲线,DFT变换区间要
4、选大些。例如窗口长度N=33时,可通过在末尾补零的方法,使长度变为64,再进行4点DFT,则可得到更精确的幅度衰减特性曲线。 3.上机实验内容 用四种窗函数设计线性相位低通FIR数字滤波器,截止频率rad,N=256。绘制相应的幅频特性曲线,观察3dB带宽和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。 设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数,即 其中 (2-8) (2-9)五、思考题1.如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。 2.定性说明本实验中3dB截止频率的理论值在什么位置?是否等于
5、理想低通的截止频率?3.如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为和,试求理想带通的单位脉冲响应。六、实验报告要求1.简述实验目的及原理。2.按照实验步骤及要求,比较各种情况下的滤波性能,说明窗口长度N和窗函数类型对滤波特性的影响。3.总结用窗函数法设计FIR滤波器的主要特点。 4. 简要回答思考题。参考程序1:N=input(窗宽度N=);k=input(窗型:1.矩形窗,2.hanning(升余弦窗),3.hamming(改进的升余弦窗),4.Blackman 请选择:);subplot(2,2,1);w=pi/5;a=(N-1)/2;n=0:(N-1);m=n-a+ep
6、s;h=sin(w*m)./(pi*m);if k=1 B=bartlett(N);else if k=2 B=hanning(N); else if k=3 B=hamming(N); else if k=4 B=blackman(N); end end endendhd=h.*(B);stem(n,hd,.);xlabel(n);ylabel(h(n);title(在矩形窗下的N=33时h(n)函数);subplot(2,2,2);H,m=freqz(hd,1,1024);mag=abs(H);db=20*log10(mag+eps)/max(mag);plot(m/pi,db);xlab
7、el(w/);ylabel(20logH(ejw);title(h(n)的幅频特性);grid;pha=angle(H);subplot(2,2,3);plot(m,pha);xlabel(n);ylabel();title(h(n)的相频特性);subplot(2,2,4);plot(m,mag);xlabel(w);ylabel(H(ejw);title(h(n)的幅频特性);参考程序2:b=1;close all;i=0;while(b); temp=menu(选择窗函数长度N,N=10,N=15,N=20,N=25,N=30,N=33,N=35,N=40,N=45,N=50,N=55,
8、N=60,N=64); menu1=10,15,20,25,30,33,35,40,45,50,55,60,64; N=menu1(temp); temp=menu(选择逼近理想低通滤波器截止频率Wc,Wc=pi/4,Wc=pi/2,Wc=3*pi/4,Wc=pi,Wc=0.5,Wc=1.0,Wc=1.5,Wc=2.0,Wc=2.5,Wc=3.0); menu2=pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3; w=menu2(temp); n=0:(N-1); hd=ideal(w,N); %得到理想低通滤波器 k=menu(请选择窗口类型:,boxcar,ham
9、ming,hanning,blackman); if k=1 B=boxcar(N); string=Boxcar,N=,num2str(N); else if k=2 B=hamming(N); string=Hamming,N=,num2str(N); else if k=3 B=hanning(N); string=Hanning,N=,num2str(N); else if k=4 B=blackman(N); string=Blackman,N=,num2str(N); end end end end h=hd.*(B); %得到FIR数字滤波器 H,m=freqz(h,1,1024
10、,whole); %求其频率响应 mag=abs(H); %得到幅值 db=20*log10(mag+eps)/max(mag); pha=angle(H); %得到相位 i=i+1; figure(i) subplot(2,2,1); n=0:N-1; stem(n,h,.); axis(0,N-1,-0.1,0.3); hold on; n=0:N-1; x=zeros(N); plot(n,x,-); xlabel(n); ylabel(h(n); title(实际低通滤波器的h(n); text(0.3*N),0.27,string); hold off; subplot(2,2,2)
11、; plot(m/pi,db); axis(0,1,-100,0); xlabel(w/pi); ylabel(dB); title(衰减特性(dB); grid; subplot(2,2,3); plot(m,pha); hold on; n=0:7; x=zeros(8); plot(n,x,-); title(相频特性); xlabel(频率(rad); ylabel(相位(rad); axis(0,3.15,-4,4); subplot(2,2,4); plot(m,mag); title(频率特性); xlabel(频率W(rad); ylabel(幅值); axis(0,3.15,0,1.5); text(0.9,1.2,string); b=menu(Do You want To Continue ?,Yes,No); if b=2 b=0; endendtemp=menu(Close All Figure ?,Yes,No);if temp=1 close allend专心-专注-专业
限制150内