课程设计(论文)FIR低通滤波器的设计.doc
湖南文理学院课程设计 课题名称: FIR低通滤波器的设计 学 院: 电气与信息工程学院 专业班级: 通信08102班 姓 名: 学 号: 指导教师: 完成时间: 2011-06-11 报告成绩: 评阅意见: 评阅老师: 评阅时间: FIR低通滤波器的设计一、 设计目的1、 加深对数字信号处理理论方面的理解,提高学生用程序实现相关信号处理的能力。2、 使学生掌握C或MATLAB实现数字信号处理中频谱分析的方法和步骤。3、 使学生掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程,为以后的设计打下良好基础。4、 掌握窗函数法FIR低通滤波器的设计。 二、 设计要求1、 既要有设计的理论内容,也要有每一步的MATLAB处理结果。2、 应用MATLAB平台,采用函数法设计一FIR低通数字滤波器:p=2*103(rad/sec),st=2*3*103(rad/sec),s=2*104(rad/sec),阻带衰减不小于-50db。3、 应用MATLAB平台。三、 设计原理 随着通信与信息技术的发展,数字信号在该领域显得越来越重要。同时数字信号处理在语音、自动控制、航空航天和家用电器领域也得到了广泛应用,它已成为当今一门极其重要的学科和技术。在数字信号处理中起重要作用并获得广泛应用的是数字滤波器,数字滤波器是数字信号处理的基础。Matlab(Matrix laboratory)是美国Math Works公司推出的具有强大数值分析、矩阵运算、图形绘制和数据处理等功能的软件,现在广泛应用到教学、科研、功能工程设计领域。随着Mallab软件信号处理软件箱的推出,Mallab已成为信息处理,特别是数字信号处理(DSP)应用中分析和设计的主要工具。就Mallab信号处理中的滤波器设计而言,简化了滤波器设计的难度。1、 数字滤波器的优点 所谓数字滤波器是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的器件。与模拟滤波器相比,数字滤波器的优点是:(1) 精度和稳定性高;(2) 系统函数容易改变,所以灵活性高;(3) 不要求阻抗匹配;(4) 便于大规模集成。 数字滤波器包括有限长脉冲响应滤波器(FIR filter)和无限长滤波器(IIR filter),它们的系统函数分别为: 从结构上看,FIR数字滤波器采用非递归结构,IIR数字滤波器采用递归结构。IIR数字滤波器的相位要求很高,而FIR很容易做到严格线性相位特性,因此介绍FIR数字滤波器的设计方法有一定的实用意义。2、 FIR数字滤波器的窗函数设计方法 FIR数字滤波器的设计是选择有限长度(长度为H)的单位脉冲响应h(n),使其传输函数H(ejw)=满足技术要求。FIR数字滤波器的设计问题就是要求所设计的FIR数字滤波器的频率响应H(ejw)去逼近所要求的理想滤波器的响应Hd(ejw)。从单位取样序列来看,就是使所设计的滤波器的h(n)逼近单位取样响应序列hd(n)。而且 设理想低通滤波器的传输函数为(),它的表达式如下: 边界频率wc是不连续点,相应的单位取样响应 可见,理想低通滤波器的单位取样响应(n)是无限长的,n从-到+,且是非因果序列。 为了从hd(n)得到一个因果线性相位的FIR滤波器,必须利用有限长度N的窗函数wN(n)对hd(n)进行截取,截取后的冲击响应函数h(n)可表示为: 此时h(n)为关于=偶对称的有限因果序列。当N为奇数时,所设计的FIR数字低通滤波器为I型滤波器;当N为偶数时,为型滤波器。 而h(n)表示的滤波器频率特性为: H(ejw)是否能够很好的逼近Hd(ejw)取决于窗函数的频谱特性W(ejw)。若将理想滤波器的频率响应写成: 其中幅度频率特性: 此时,h(n)滤波器的频率特性可表示为: 由此可以得到所设计的滤波器的幅度频率特性为: 实际对FIR滤波器的H()有影响的只是窗函数的幅度频率特性WR()。实际中的FIR滤波器的幅度频率特性,是理想低通滤波器的幅度频率特性和窗函数的幅度频率特性的复卷积。复卷积给H()带来过冲和波动,所以加窗函数后,对滤波器的理想特性的影响有以下几点:1) H()在截止频率的间断点变成了连续的曲线,使得H()出现了一个过渡带,它的宽度等于窗函数的主瓣宽度,过渡带就越宽,2) 由于窗函数的旁瓣的影响,使得滤波器的幅度频率特性出现了波动,波动的幅度取决于旁瓣的相对幅度。旁瓣范围的面积越大,通带波动和阻带波动就越大,也就是说阻带的衰减减小。而波动的多少,取决于旁瓣的多少。3) 增加创函数的长度,只能减少窗函数的幅度频率特性W()的主瓣宽度,而不能减少主瓣和旁瓣的相对值,该值取决于窗函数的形状,即增加取决函数的长度N只能相应的减小过渡带,而不能改变滤波器的波动程度。为了满足工程上的需要,可以通过改变窗函数的形状来改善滤波器的幅度频率特性,而创函数的选择原则是:1) 具有较低的旁瓣幅度,尤其是第一旁瓣的幅度;2) 旁瓣的幅度下降的速率要快,以利于增加阻带的衰减;3) 主瓣的宽度要窄,这样就可以得到比较窄的过渡带。 通常上述的几点难以同时满足。当选用主瓣宽度较窄时,虽然能够得到比较陡峭,但是通带和阻带的波动明显增加;当选用比较小的旁瓣幅度时,虽然能够得到比较平坦和匀滑的幅度频率响应,但是过渡带将加宽,因此实际中选用的窗函数往往是它们的折中。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣的波动减小。以上是从幅度频率特性设计方面对窗函数提出的要求,实际中设计FIR数字滤波器往往要求是线性相位的,以此要求w(n)满足线性相位的条件,即要求w(n)满足: W(n)=W(N-1-n)所以,窗函数不仅有截短的作用,而且能够起到平滑的作用,在很多领域得到了应用。表一 、六种窗函数基本参数比较窗函数窗谱性能指标加窗后滤波器性能指标旁瓣峰值/dB 主瓣宽度/(2/N)过滤带宽/(2/N)阻带最小衰减/dB矩形窗-1320.9-21三角窗-2543.05-25汉宁窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凯泽窗-575-80、型理想低通滤波器的单位冲激响应hd(n)计算的MATLAB的实现例程如例程 、型理想低通滤波器的单位冲激响应hd(n)计算 function hd=ideal_lp(Wc,N)%compute the ideal lowpass fiter unit pulse respondence hd(n)%wc:cutoff frequency%N:window length%hd:unit pulse respondence alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(Wc*m)./(pi*m);例:设计一FIR低通数字滤波器p=2*103(rad/sec),st=2*3*103(rad/sec),s=2*104(rad/sec),阻带衰减不小于-50dbB。解(1)求各对应数字频率通带截止频率为 阻带起始频率为 阻带衰减相当于 =50dB求hd(n)。设为理想线性相位滤波器 首先由所需低通滤波器的过渡带求理想低通滤波器的频率c 其对应的数字频率为 由此可得 其中,为线性相位所必须的移位,我们已经知道应满足。(3)求窗函数。由阻带衰减2确定窗形状,由过渡带宽确定N。由于2 =-50dB,查上表可选海明窗,其阻带最小衰减-53dB满足要求。所要求的过渡带宽 由于海明窗过渡带满足 所以 (4)求h(n)。由海明窗表达式(n)确定FIR滤波器的h(n)。海明窗 所以(5)由h(n)求H(ej),检验各项指标是否满足要求。如不满足要求,则要改变N,或改变窗形状,然后重新计算。四、源程序清单%exa5-9_hammlow.m,for example 5-9%use hamming window to design lowpass digital filterclear all;Wp=0.2*pi;Ws=0.6*pi;tr_width=Ws-Wp;N=ceil(6.6*pi/tr_width)n=0:1:N-1;Wc=(Ws+Wp)/2;hd=ideal_lp(Wc,N);w_ham=(hamming(N)'h=hd.*w_ham;db,mag,pha,w=freqz_m2(h,1);delta_w=2*pi/1000;Ap=-(min(db(1:1:Wp/delta_w+1)As=-round(max(db(Ws/delta_w+1:1:501)subplot(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_ham)title('海明窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(dB)')axis(0,1,-100,10)%-functiondb,mag,pha,w=freqz_m2(b,a)%滤波器幅值响应(绝对、相对)、相位响应%db:相对幅值响应;%mag:绝对幅值响应;%pha:相位响应;%w:采样频率;%b:系统函数H(z)的分子项(对FIR,b=h)%a:系统函数H(z)的分母项(对FIR,a=1)H,w=freqz(b,a,1000,'whole');H=(H(1:1:501)'w=(w(1:1:501)'mag=abs(H);db=20*log10(mag+eps)/max(mag);pha=angle(H);四、 设计结果及波形仿真N=17,Ap=0.0655,As=45.。 六、心得体会通过两星期的数字信号处理课程设计,我复习了MATLAB编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对课堂所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。在平时的数字信号处理实验课中我们不少接触MATLAB编程语言,但在这次编写程序以及调试的过程中遇到了很多困难,一次问我通过去图书馆查找资料,请教同学,在自己一点点改善程序,最终编写出一些比较完善的程序,这使我在这次课程设计中学到了很多知识,使我对数字信号这门课程有了更加的了解和掌握。在这一周的学习中的学习是我对数字信号处理这门课程有了进一步的理解。经过查阅相关资料,逐步的掌握了滤波器的设计过程,使我加强了对实际问题的动手和思考和解决问题的能力。但也暴露了自身的许多不足,如自主解决问题的能力有所欠缺,这在以后学习过程中需要更好的加强。在这一周中每天都是忙碌的,但我觉得很充实,自己学到很多东西,也加深我对数字信号处理的学习兴趣。数字信号里边的公式虽多,但理解了它、掌握了它,就会发现其中也是有规律可循的。这次的课程设计中培养了我如何去学习和掌握新知识的能力,这对以后的学习和工作都有很大的帮助。七、参考文献 1、MATLAB7辅助信号处理技术与应用 电子工业出版社2、MATLAB信号处理与应用 国防工业出版社3、数字信号处理教程第三版 清华大学出版社4、数字信号处理与MATLAB实现 清华大学出版社5、应用MATLAB实现信号分析和处理 科学出版社