FIR数字低通滤波器设计.pdf
第 1 章 绪论 设计的作用、目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过 MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充。设计任务及要求 通过课程设计各环节的实践,应使学生达到如下要求:1.掌握双线性变换法及脉冲响应不变法设计 IIR 数字滤波器以及窗函数法 设计 FIR 数字滤波器的原理、具体方法及计算机编程。2.观察双线性变换法、脉冲响应不变法及窗函数法设计的滤波器的频域特性,了解各种方法的特点。3.用 MATLAB 画出三种方法设计数字滤波器的幅频特性曲线,记带宽和衰减量,检查结果是否满足要求。,设计内容 设计题目:FIR 数字滤波器的设计 设计内容:(1)设计一线性相位FIR 数字低通滤波器,截止频率2.0f,过渡带宽度 4.0,阻带衰减dBAs30。(2)设计一线性相位 FIR 数字低通滤波器,截止频率2.0f,过渡带宽度4.0,阻带衰减dBAs50。第 2 章 FIR 数字低通滤波器的原理 数字低通滤波器的设计原理 FIR 数字滤波器传统的设计方法有窗函数法、频率抽样法和等波纹逼近法。用窗函数设计 FIR 数字滤波器就是用有限长的脉冲相应逼近序列,其基本设计思想为:首先选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。就是允许某一部分频率的信号顺利的通过,而另外一部分频率的信号则受到较大的抑制,它实质上是一个选频电路。1.滤波器的概念【滤波器是对输入信号起滤波的作用的装置。当输入、输出是离散信号,滤波器的冲激响应是单位抽样响应 nh时,这样的滤波器称作数字滤波器(DF)。DF是由差分方程描述的一类特殊的离散时间系统。2.数字滤波器的系统函数与差分方程:系统函数 (2-1)差分方程 对上式进行 Z 反变换,即得:,(2-2)3.数字滤波器结构的表示 数字滤波器分 FIR 数字滤波器和 IIR 数字低通滤波器。其中 FIRNkMkkkknxbknyany10)()()(NkkMkkzazbzXzYzHkk101)()()(低通滤波器分直接型和级联型,IIR 分直接型、级联型和并联型。方框图法、信号流图法 /图 2-1 三种基本运算的表示图 4.数字滤波器的分类 按所处理的信号分为模拟滤波器和数字滤波器两种。按所通过信号的频段分为低通、高通、带通和带阻滤波器四种。低通滤波器:它允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声。高通滤波器:它允许信号中的高频分量通过,抑制低频或直流分量。带通滤波器:它允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声。带阻滤波器:它抑制一定频段内的信号,允许该频段以外的信号通过。:按所采用的元器件分为无源和有源滤波器两种。无源滤波器:仅由无源元件(R、L 和 C)组成的滤波器,它是利用电容和电感元件的电抗随频率的变化而变化的原理构成的。这类滤波器的优点是:电路z-1x(n)x(n-1)x(n)aax(n)x2(n)x1(n)x1(n)+x2(n)x(n)x(n-1)x(n)x2(n)x1(n)x1(n)+x2(n)z-1ax(n)a比较简单,不需要直流电源供电,可靠性高;缺点是:通带内的信号有能量损耗,负载效应比较明显,使用电感元件时容易引起电磁感应,当电感 L 较大时滤波器的体积和重量都比较大,在低频域不适用。5.IIR 滤波器与 FIR 滤波器的分析比较 表 两种滤波器特点比较分析 FIR 滤波器的原理 2.2.1 几种常用的窗函数 工程中比较常用的窗函数有:矩形窗函数、三角形(Bartlett)窗函数、汉宁(Harming)窗函数、哈明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。2.2.2 矩形窗(Rectangle Window)FIR 滤波器 IIR 滤波器 设计方法 一般无解析的设计公式,要借助计算机程序完成,利用 AF 的成果,可简单、有效地完成设计 设计结果 可得到幅频特性(可以多带)和线性相位(最大优点)只能得到幅频特性,相频特性未知,如需要线性相位,须用全通网络校准,但增加滤波器阶数和复杂性 稳定性 极点全部在原点(永远稳定)无稳定性问题 有稳定性问题 阶数 高 低 结构 非递归系统 递归系统 运算误差 一般无反馈,运算误差小 有反馈,由于运算中的四舍五入会产生极限环 图 2.1 滤波器频率响应 图.矩形窗函数的脉冲响应&窗函数:()()RNwnRn 其频率响应:12(1)sin(/2)()sin(/2)jNjRNW ee )(jReW主瓣宽度为 4/N,第一副瓣比主瓣低 13dB。2.2.3 三角形窗(Bartlett Window)图 滤波器频率响应 图 三角形窗函数的脉冲响 窗函数:12122,0(1)122,(1)11()nnNNnBrNn NNwn 其频率响应:1()22442()sin()/sin()NjjNBrW eeN .其主瓣宽度为 8/N,第一旁瓣宽度比第一主瓣低 26dB。2.2.4 汉宁(Hanning)窗(又称升余弦窗)图 滤波器频率响应 图 汉宁窗函数的脉冲响应 窗函数:2()0.51cos()()1HnNnwnRnN 频率响应:(1)/2Han()()jj NHanWeWe 当 N1 时,频率响应的幅度函数。()jHanWe的主瓣宽度为 8/N,第一旁瓣比主瓣低 31dB。2.2.5 哈明(Hamming)窗(又称改进升余弦窗)图 滤波器频率响应 图 哈明窗函数的脉冲响应 窗函数:2()0.540.46cos()()1HmNnwnRnN 其频域函数:22()()11R()0.54()0.23()0.23()jjjjNNHmRRWeWeWeWe 其幅度函数:R22()0.54()0.23()0.23()11HmRRWWWWNN 这种改进的升余弦窗,能量更加集中在主瓣中,主瓣的能量约%,第一旁瓣的峰值比主瓣小 40dB,但主瓣和汉宁窗相同,为 8/N。2.2.6 布莱克曼(Blackman)窗 图 滤波器频率响应 图 布莱克曼窗函数的脉冲响应 窗函数:Bl24()0.420.5cos()0.08cos()()11NnnwnRnNN 频率响应:22()()11BlR44()()11R()0.42()0.25()0.04W jjjjNNRRjjNNRWeWeWeW eeW e 幅度响应:)14()14(0.04 )12()12(25.0)(42.0)(RNWNWNWNWWWRRRRBl 2.2.7 凯塞(Kaiser)窗&图 滤波器频率响应 图 凯塞窗函数的脉冲响应 这是一种适应性较强的窗,是一种最优和最有用的窗。它是在给定阻带衰减下给出一种大的主瓣宽度意义上的最优结果,这本身就是含着最陡峭的过渡带。其公式为:2001 12/(1)()()InNw nI 0nN-1 式中,0I是第一类变形零阶贝塞尔函数,是一个可自由选择的参数。凯塞窗的优点:凯塞窗可提供变化的过渡带宽,通过改变 的值可达到最陡的过渡带;凯塞窗具有与海明窗相匹敌的特性,通过调整 的值,可将凯塞窗完全 .等价于海明窗;凯塞窗最大旁瓣值比主瓣约低 80dB,在所有的窗函数中旁瓣抑制度最大。本次设计选用的是汉宁窗和哈明窗。第 3 章 FIR 数字滤波器仿真分析 设计步骤 窗函数设计的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的 FIR 滤波器。因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。1 选择窗函数,计算窗函数长度 N 对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。2 构造0()()NjjdnH ehn e 任何数字滤波器的频率响应()jA e都是的周期函数,它的傅立叶级数展开式为:10()()NjjdnH eh n e (3-1)3 求出2212102sin()()()Lj ncddLnhHedn 12212102sin()()()Lj ncddLnhHedn (3-2)其中的c为滤波器的归一化的截止频率。傅立叶系数 nh实际上就是理想数字滤波器的冲激响应。获得有限冲激响应数字滤波器的一种可能方法就是把无穷级数截取为有限项级数来近似,而吉布斯(Gibbs)现象使得直接截取法不甚令人满意。4 加窗 窗函数法就是用被称为窗函数的有限加权系列 n来修正式(3-2)的傅立叶级数,以求得要求的有限冲激响应序列 nh,即有:。()()()dh nh nn (3-3)()n是有限长序列,当nN-1及 n0时,()0n。数字低通滤波器MATLAB编程及幅频特性曲线 3.2.1 MATLAB 语言编程(1)汉宁窗的 MATLAB 语言编程 delta=*pi;%阻带截止频率 wc=*pi;%通带截止频率 as=30;%阻带最小衰减】n=ceil(8*pi/delta)+1;%计算窗体长度 win=hanning(n);%汉宁窗 h=fir1(n-1,wc/pi,win);%调用 firl 计算 h(n),关于 pi 归一化 omega=linspace(0,pi,512);%0 到 pi 分成 512 格 mag=freqz(h,1,omega);%数字滤波器频率响应函数 magdb=20*log10(abs(mag);%abs 为取绝对值 plot(omega,magdb);axis(0 pi-100 0);%axis(x 最小值 x 最大值 y 最小值 y 最大值)grid;%网格图 xlabel(频率)ylabel(幅度/db);(2)哈明窗的 MATLAB 语言编程 delta=*pi;wc=*pi;as=50;n=ceil(8*pi/delta)+1;.win=hamming(n);%哈明窗 h=fir1(n-1,wc/pi,win);omega=linspace(0,pi,512);mag=freqz(h,1,omega);magdb=20*log10(abs(mag);plot(omega,magdb);axis(0 pi-100 0);grid;xlabel(频率)ylabel(幅度/db);3.2.2 幅频特性曲线(1)据汉宁窗 MATLAB 语言仿真的仿真图(2)据哈明窗 MATLAB 语言仿真的仿真图:优缺点 汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是 3 个矩形时间窗的频谱之和,或者说是 3 个 sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了/T,从而使旁瓣互相抵消,消去高频干扰和漏能,是能量更加集中在主瓣中。适用于非周期性的连续信号。哈明窗本质上和汉宁窗是一样的,只是系数不同。哈明窗比汉宁窗消除旁瓣的效果好一些而且主瓣稍窄,但是旁瓣衰减较慢是不利的方面。适当地改变系数,可得到不同特性的窗函数。其主瓣宽度与汉宁窗相同。可见哈明窗是一种高效窗函数。哈明窗和汉宁窗的主瓣具有最小的旁瓣和较大的衰减速度,是较为常用的窗函数。-|第 4 章 总结 本次课程设计使我们巩固有关数字信号处理相关内容的基础上,提高了我们的实践能力。经过这次对 MATLAB 的学习和对 MATLAB 在数字信号系统和其他方面的实训,我充分的了解了 MATLAB 的实用性和便捷性,对我以后在其他方面的学习大有好处。我觉得学习 MATLAB 首先要把基础掌握,然后是绘图,各种画图函数,函数图形的加工,最后是编程,这是最重要的,能解决很多问题,也是后面学习的基础。这些方面掌握后,就可以做实践锻炼了,有很多技巧在实践中可以不断地积累。这次课程设计对我的帮助很多,同时加深了对课堂上学习的知识的理解。通过这次课程设计使我充分理解到数字信号处理的重要性和实用性,特别是加深了对 MATLAB 及其操作各方面的了解和设计,对实际操作设计中所涉及的各个方面要注意问题都有所了解。通过这次对 FIR 数字滤波器的设计,不仅让我将所学的知识应用到实际中,而且对知识也是一种巩固和提升充实。在老师和同学的帮助下,及时的按要求完成了设计任务,通过这次课程设计,使我获得了很多重要的知识,同时也提高了自己的实际动手和知识的灵活运用能力。通过这一周的学习,学到了不少的知识!不仅纠正了课程学习过程中出现的许多错误,还在运行 MATLAB 时验证了自己的一些猜想。在学习的过程中有失败,当然也有困惑,有成功,当然就有喜悦。虽然只是课程设计,但我拿出了自己的全部精力去对待,能学到知识固然值得骄傲,能认识到自己的过错和不足不也是一件幸事吗!做学问也是做人,在做学问的过程中体味做人的道理不也是一种收获吗记得古语中说:“学,然后知不足”!希我必将更加努力的学习它完善自己。我想这就是我这次做课程设计最大感受吧。参考文献 1.高西全 数字信号处理 西安电子科技大学出版社 2008 2.丁玉美 数字信号处理 西安电子科技大学出版社 2008 3.张亚妮 基于 MATLAB 的数字滤波器设计 辽宁工程技术大学出版社 2005 4 数字信号处理实验指导书 电气与电子实验中心 吉林建筑工程学院 2011 5.刘波 MATLAB 信号处理 电子工业出版社 2006 6.刘卫国,陈昭民,张颖 Matlab 程序设计与应用 高等教育出版社 2002