北京师范大学课程设计报告课程名称:DSP设计名称:FIR低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级:学生姓名:学号:设计名称:FIR低通、高通带通和带阻数字滤波器的设计起止日期:指导教师:设计目标:1、采用Kaiser窗设计一个低通FIR滤波器要求:采样频率为8kHz;通带:0Hz~1kHz,带内波动小于5%;阻带:1.5kHz,带内最小衰减:Rs=40dB。2、采用hamming窗设计一个高通FIR滤波器要求:通带截至频率wp=rad6.0,阻带截止频率ws=rad4.0,通带最大衰减dBp25.0,阻带最小衰减dBs503、采用hamming设计一个带通滤波器低端阻带截止频率wls=0.2*pi;低端通带截止频率wlp=0.35*pi;高端通带截止频率whp=0.65*pi;高端阻带截止频率whs=0.8*pi;4、采用Hamming窗设计一个带阻FIR滤波器要求:通带:0.35pi~0.65pi,带内最小衰减Rs=50dB;阻带:0~0.2pi和0.8pi~pi,带内最大衰减:Rp=1dB。FIR低通、高通带通和带阻数字滤波器的设计一、设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。二、设计原理一般,设计线性相位FIR数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。如果所希望的滤波器的理想频率响应函数为)(jwdeH,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应hd(n)将是无限长的,如图2、图3所示。Hd(w)-wcwc图2图3若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR滤波器频率响应10)()(NnjwnjwenheH来逼近)(jwdeH,即用一个窗函数w(n)来截断hd(n),如式3所示:)()()(nwnhnhd(式1)。最简单的截断方法是矩形窗,实际操作中,直接取hd(n)的主要数据即可。)(nh作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为:10)()(NnjwnjwenheH(式2)令jwez,则10)()(NnnznhzH(式3),式中,N为所选窗函数)(nw的长度。如果要求线性相位特性,)(nh还必须满足:)1()(nNhnh(式6),根据式6中的正、负和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波器特性正确选择其中一类。例如:要设计线性相位低通特性,可选择)1()(nNhnh类。三、详细设计步骤sSfT(公式4)表1窗函数过滤带宽/(2π/N)阻带最小带宽海明窗3.3-53凯泽窗5-801、采用Kaiser窗设计一个低通FIR滤波器要求:采样频率为8kHz;通带:0Hz~1kHz,带内波动小于5%;阻带:1.5kHz,带内最小衰减:Rs=40dB思路分析:根据公式4可以得到通带截止频率p为0.25,阻带截止频率s为0.375。根据表1可算得10N,则凯泽窗的时域表达式可以通过n=kaiser(N)得到。低通滤波器的时域表达式是npinnhdnsin,其中应该关于21N对称。这样,滤波器就得到了为:ndndnhnh。最后利用函数freqz得到加窗后的滤波器的幅频响应和相频响应。2、采用Hamming窗设计一个高通线性相位FIR滤波器要求:设计用窗函数法设计线性相位高通滤波器,要求截至频率wp=rad6.0,阻带截止频率ws=rad4.0,通带最大衰减dBp25.0,阻带最小衰减dBs50。有如下公式计算高通滤波器的通带截止频率以及阻带截止频率:sppFfw/2(1)sssFfw/2(2))1(log2010pP(3)ss10log20(4)分析:根据设计要求给出的高通滤波器的性能指标以及(1)(2)(3)(4)公式计算得出该高通滤波器性能指标的另一种表示为:通带偏差p0.0292阻带偏差s0.0032通带边沿频率pf1000KHZ阻带边沿频率sf600KHZ选择窗函数W(n),计算窗函数长度N,由已知条件知:阻带最小衰减dBs40参照表(1)可知汉宁窗和哈明窗都满足要求。我选择的窗函数是汉宁窗。过渡带宽度2.0sptwwB汉宁窗的精确过度带宽NBt/2.6故要求2.0)/2.6(NBt,解得:31N又根据前面分析的四种类型的FIR滤波器的可知,对于高通滤波器,N必须取奇数,故N=31与汉宁窗函数的可以得知)()]12cos(1[5.0)(31nRnnw3、采用Hamming窗设计一个带通线性相位FIR滤波器要求:低端阻带截止频率wls=0.2*pi;低端通带截止频率wlp=0.35*pi;高端通带截止频率whp=0.65*pi;高端阻带截止频率whs=0.8*pi;思路分析:由条件可知通带为0.3pi,由通带大小可设计滤波器。这样,滤波器就得到了为:ndnndndhnhnh21。最后利用函数freqz得到加窗后的滤波器的幅频响应和相频响应。4、采用Hamming窗设计一个带阻FIR滤波器要求:阻带:0.35pi~0.65pi,带内最小衰减Rs=50dB;通带:0~0.2pi和0.8pi~pi,带内最大衰减:Rp=1dB思路分析:根据要求知阻带截止频率s分别为0.35,65.0。通带截止频率为0.2和0.8。.根据表1可算得6.6N,则海明窗的时域表达式可以通过n=hamming(N)得到。带阻滤波器可以看成是高通加低通。它的时域表达式是npinnpinnpinnhlhdnsinsinsin,其中应该关于21N对称。这样,滤波器就得到了为:ndndnhnh。最后利用函数freqz得到加窗后的滤波器的幅频响应和相频响应。附程序:%子函数,产生理想滤波器的时域波形functionhd=ideal(w,N);%1,2型理想低通滤波器单位单位脉冲响应hd(n),w为窗口长度,N为截止频率%alpha=(N-1)/2;n=[0:N-1];m=n-alpha+eps;%加一个小数以避免零作除数hd=sin(w*m)./(pi*m);四程序代码1、低通FIR滤波器:%采样频率为8kHz;%通带:0Hz~1kHz,带内波动小于5%;wp=0.、25pi%阻带:1.5kHz,带内最小衰减:Rs=40dB。wst=0.375pi%clcclearRs=40;Wp=0.25*pi;%根据通带:0Hz~1kHz,带内波动小于5%;得wp=0.125piWst=0.375*pi;%阻带:1.5kHz,带内最小衰减:Rs=40dB。得wst=0.1875pidert_w=Wst-Wp;%N=ceil((Rs-7.95)*2*pi/(14.36*dert_w)+1);N=ceil((10*pi/dert_w)+1);beta=0.5842*(Rs-21)^0.4+0.07886*(Rs-21);hd=ideal((Wst-Wp)/2,N);%滤波器在时域系统的冲击响应B=kaiser(N,beta);%凯泽窗h=hd.*(B)';%加窗后[H,m]=freqz(h,[1],1024,'whole');%获取频率响应mag=abs(H);%幅值db=20*log10((mag+eps)/max(mag));%分贝数pha=angle(H);%相位%绘图w=m/pifigure(1);subplot(2,2,1);stem(hd);xlabel('n');ylabel('hd');title('滤波器时域');subplot(2,2,2);plot(w,mag);xlabel('w');ylabel('h');title('加窗后幅度响应');subplot(2,2,3);plot(w,db);xlabel('w');ylabel('db');title('分贝数');axis([01-1000]);subplot(2,2,4);plot(w,pha);%实际低通滤波器单位脉冲响应xlabel('w');ylabel('相位');title('相频响应');axis([01-44]);2:高通滤波器设计clearall;wp=0.6*pi;ws=0.4*pi;tr_width=wp-ws;N=ceil(6.2*pi/tr_width)n=0:1:N-1;wc=(ws+wp)/2;hd=ideal_hp1(wc,N);w_han=(hanning(N))';h=hd.*w_han;[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(wp/delta_w+1:1:501)))As=-round(max(db(1:1:ws/delta_w+1)))subplot(2,2,1),stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(2,2,2)stem(n,w_han)title('汉宁窗w(n)')subplot(2,2,3)stem(n,h)title('实际单位脉冲响应h(n)')subplot(2,2,4)plot(w/pi,db)title('幅度相应(db)')axis([0,1,-100,10])3:带通滤波器设计wls=0.2*pi;wlp=0.35*pi;whp=0.65*pi;wc=[wlp/pi,whp/pi];B=wlp-wls;N=ceil(8/0.15);n=0:N-1;window=hanning(N);[h1,w]=freqz(window,1);figure(1);stem(window);axis([06001.2]);grid;xlabel('n');title('Hanning窗函数');figure(2);plot(w/pi,20*log(abs(h1)/abs(h1(1))));axis([01-3500]);grid;xlabel('w/pi');ylabel('幅度(dB)');title('Hanning窗函数的频谱');hn=fir1(N-1,wc,hanning(N));[h2,w]=freqz(hn,1,512);figure(3);stem(n,hn);axis([060-0.250.25]);grid;xlabel('n');ylabel('h(n)');title(‘Hanning窗函数的单位脉冲响应’);figure(4);plot(w/pi,20*log(abs(h2)/abs(h2(1))));grid;xlabel('w/pi');ylabel('幅度(dB)');4.带阻滤波器设计%采用Hamming窗设计一个带阻FIR滤波器%要求:%阻带:0.35pi~0.65pi,带内最小衰减Rs=50dB;%通带:0~0.2pi和0.8pi~pi,带内最大衰减:Rp=1dB。clcclearWpl=0.2*pi;%根据阻带:0.35pi~0.65pi,通带:0~0.2pi和0.8pi~pi,Wph=0.8*pi;%确定两个通带截止频率和两个阻带截止频率。Wsl=0.35*pi;Wsh=0.65*pi;dert_w=min((Wsl-Wpl),(Wph-Wsh));N=ceil(6.6*pi/dert_w);%根据过度带宽确定Nn=0:1:N-1;Wcl=(Wsl+Wpl)/2;%低通中心频率Wch=(Wsh+Wph)/2;%高通中心频率hd=ideal(pi,N)-ideal(Wch,N)+ideal(Wcl,N);%带通滤波器的原型高通