-河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期指导教师:20年月课程设计成绩评定表学生姓名学号成绩专业班级起止时间设计题目指导教师评语指导教师:年月日目录1.窗函数设计低通滤波器1.1设计目的……………………………………………………………………11.2设计原理推导与计算………………………………………………………11.3设计内容与要求……………………………………………………………21.4设计源程序与运行结果……………………………………………………31.5思考题……………………………………………………………………101.6心得体会…………………………………………………………………14参考文献………………………………………………………………………15-1-1.窗函数设计低通滤波器1.1设计目的1.熟悉设计线性相位数字滤波器的一般步骤。2.掌握用窗函数法设计FIR数字滤波器的原理和方法。3.熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。4.学会根据指标要求选择合适的窗函数。1.2设计原理推导与计算如果所希望的滤波器的理想的频率响应函数为jdeH,则其对应的单位脉冲响应为deeHnhjjdd21(4.1)窗函数设计法的基本原理是设计设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数jeH,即ccjjd,,eeH0,其中21NanandeedeeHnhcjjjjddccsin2121用有限长单位脉冲响应序列nh逼近nhd。由于nhd往往是无限长序列,而且是非因果的,所以用窗函数n将nhd截断,并进行加权处理,得到:nnhnhd(4.2)nh就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数jeH为njNnjenheH10(4.3)式中,N为所选窗函数n的长度。用窗函数法设计的滤波器性能取决于窗函数n的类型及窗口长度N的取-2-值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB过渡带带宽N2矩形窗-134π/N-120.9三角形窗-258π/N-252.1汉宁窗-318π/N-443.1哈明窗-418π/N-533.3不莱克曼窗-5712π/N-745.5凯塞窗(=7.865)-5710π/N-805表(一)各种窗函数的基本参数这样选定窗函数类型和长度N之后,求出单位脉冲响应nnhnhd,并按照式(4.3)求出jeH。jeH是否满足要求,如果jeH不满足要求,则要重新选择窗函数类型和长度N,再次验算,直至满足要求。1.3设计内容与要求(一)设计要求:1.学会计算滤波器各项性能指标及如何来满足给定的指标要求。2.用MATLAB语言编程实现给定指标要求的滤波器的设计。3.熟悉MATLAB语言,独立编写程序。4.设计低通FIR滤波器的指标:-3-通带最大波动0.25,pRdB,0.2p阻带最小衰减50,sAdB,0.3s(二)、设计内容:1.熟悉各种窗函数,在MATLAB命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。2.编写计算理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。3.编写计算N阶差分方程所描述系统频响函数()jHe的m函数文件fr.m。4.根据指标要求选择窗函数的形状与长度N。(至少选择两种符合要求的窗函数及其对应的长度)。5.编写.m程序文件,通过调用ideal.m和fr.m文件,计算你设计的实际低通FIR滤波器的单位抽样响应h(n)和频率响应()jHe,打印在频率区间[O,π]上的幅频响应特性曲线()~jHe,幅度用分贝表示。6.验证所设计的滤波器是否满足指标要求。1.4设计的源程序及运行结果:1、利用MATLAB窗口观察各种窗函数:%巴特利特窗w=bartlett(20);subplot(3,2,1);plot(w);stem(w,'y');%'y'表示黄色%stem表示以离散图输出title('巴特利特床窗');xlabel('n');%横坐标为nylabel('w(n)');%纵坐标为w(n)%布莱克曼窗w=blackman(20);subplot(3,2,2);plot(w);stem(w,'b');%'b'表示蓝色title('布莱克曼窗');xlabel('n');ylabel('w(n)');%矩形窗w=boxcar(20);subplot(3,2,3);plot(w);stem(w,'r');title('矩形窗');-4-xlabel('n');ylabel('w(n)');%海明窗w=hamming(20);plot(w);stem(w,'m');%'m'表示紫色title('海明窗');xlabel('n');ylabel('w(n)');%汉宁窗w=hanning(20);subplot(3,2,5);plot(w);stem(w,'g');%'g'表示绿色title('汉宁窗');xlabel('n');ylabel('w(n)');%凯泽窗beta=5.6533;w=kaiser(20,beta);subplot(3,2,6);plot(w);stem(w,'k');%'k'表示黑色title('凯泽窗,beta=5.6533');xlabel('n');ylabel('w(n)');0510152000.51巴特利特床窗nw(n)0510152000.51布莱克曼窗nw(n)0510152000.51矩形窗nw(n)0510152000.51海明窗nw(n)0510152000.51汉宁窗nw(n)0510152000.51凯泽窗,beta=5.6533nw(n)常用窗函数的图形2、理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。-5-functionhd=ideal(wc,M)%理想低通滤波器计算%hd为0到M-1之间的理想脉冲响应%wc为截止频率%M为理想滤波器的长度alpha=(M-1)/2;n=0:M-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);3、N阶差分方程所描述的系统频响函数的m函数文件fr.m。function[db,mag,pha,gfd,w]=fr(b,a)%求解系统响应%db为相位振幅(db)%mag为绝对振幅%pha为相位响应%grd为群延时%w为频率样本点矢量%b为Ha(z)分析多项式系数(对FIR而言,b=h)%a为Hz(z)分母多项式系数(对FIR而言,a=1)[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);gfd=grpdelay(b,a,w);4、实际低通滤波器FIR:%用海明窗设计低通滤波器wp=0.2*pi;-6-ws=0.3*pi;tr_width=ws-wp;disp(['海明窗设计低通滤波器参数:']);M=ceil(6.6*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;wc=(ws+wp)/2;%理想LPF的截止频率hd=ideal(wc,M);w_ham=(hamming(M))';h=hd.*w_ham;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1)));%求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501)));%求出最小阻带衰减disp(['最小阻带衰减为-',num2str(As)],’db’);%绘图subplot(1,1,1)subplot(2,6,1)stem(n,hd);title('理想冲击响应');axis([0M-1-0.10.3]);ylabel('hd(n)');subplot(2,6,2)stem(n,w_ham);title('海明窗');axis([0M-101.1]);ylabel('w(n)');subplot(2,6,7)-7-stem(n,h);title('实际冲激响应');axis([0M-1-0.10.3]);xlabel('n');ylabel('h(n)');subplot(2,6,8)plot(w/pi,db);title('幅度响应(db)');axis([01-10010]);grid;xlabel('以pi为单位的频率');ylabel('分贝数');图(1)海明窗设计的FIR海明窗设计低通滤波器参数:滤波器的长度为67实际带通波动为0.03936-8-最小阻带衰减为-52db%用布莱克曼窗设计低通滤波器wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;disp(['布莱克曼窗设计低通滤波器的参数:']);M=ceil(11.0*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;%理想LPF的截止频率wc=(ws+wp)/2;hd=ideal(wc,M);w_bla=(blackman(M))';h=hd.*w_bla;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1)));%求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501)));%求出最小阻带衰减disp(['最小阻带衰减-',num2str(As)],’db’);%绘图subplot(2,6,3)stem(n,hd);title('理想冲击响应');axis([0M-1-0.10.3]);ylabel('hd(n)');subplot(2,6,4)stem(n,w_bla);title('布莱克曼窗');axis([0M-101.1]);-9-ylabel('w(n)');subplot(2,6,9)stem(n,h);title('实际冲激响应');axis([0M-1-0.10.3]);xlabel('n');ylabel('h(n)');subplot(2,6,10)plot(w/pi,db);title('幅度响应(db)');axis([01-10010]);grid;xlabel('以pi为单位的频率');ylabel('分贝数');图(2)布莱克曼窗设计的FIR布莱克曼窗设计低通滤波器的参数:-10-滤波器的长度为111实际带通波动为0.0033304最小阻带衰减为-73db5、技术指标比较:(1)海明窗设计低通滤波器参数:滤波器的长度为67实际带通波动为0.03936最小阻带衰减为-52db(2)布莱克曼窗设计低通滤波器的参数:滤波器的长度为111实际带通波动为0.0033304最小阻带衰减为-73db在相同的技术指标下用布莱克曼窗设计的低通滤波器实际带通波动实际带通波动最小,最小阻带衰减,滤波器的长度最大;海明窗和凯泽窗最小阻带衰减差不多,滤波器的长度页差不多,但是海明窗实际波动小于凯泽窗;所以用布莱克曼窗用设计的FIR最逼近理想单位冲击响应。这三个窗设计的低通滤波器都符合要求。1.5思考题:1.设计线性相位数字滤波器的一般步骤:(