海明窗函数法设计数字FIR带阻滤波器(共18页).doc
精选优质文档-倾情为你奉上XX学院物理系数字信号处理课程设计报告书 设计题目:海明窗函数设计FIR数字高通滤波器的仿真专 业: 电子信息科学与技术 班 级: 10电科本1 学生姓名: xxx 学 号: xxxxxxxxx 指导教师: xxxxx 2013年 5 月 20 日XX学院物理系课程设计任务书专业: 电子信息科学与技术 班级: 10电科本1 学生姓名Xxx学号2xxxxxxx课程名称数字信号处理设计题目 海明窗函数设计FIR数字高通滤波器的仿真设计目的、主要内容(参数、方法)及要求1、目的本课程是为了配合数字信号处理教学、加强实践环节而开设的,其主要作用是巩固数字信号处理理论知识、培养学生解决实际问题的能力、提高其实际动手能力。主要任务是通过一些典型的应用,完成数字信号处理应用设计。2、要求利用以下参数设计数字高通滤波器,要求通带截止频率,阻带截止频率。首先设计一个理想滤波器系统,然后用海明窗函数进行截断,得到FIR数字滤波器。工作量1周时间(自2013年5月10日2013年5月20日)进度安排5月10日,召开课程设计开题报告会,对学生题目、设计思路、设计过程、设计要求进行详细说明。 5月10日-5月12日,学生根据自己选题情况,查阅相关文献资料,编写程序和设计原理框图。 5月13日-5月18日,学生根据程序仿真结果编写课程设计报告。 5月19日-5月20日,学生完善课程设计报告,并提交。主要参考资料1吴大正.信号与线性系统分析(第四版)M.高等教学出版社,2010.2程佩青.数字信号处理(第三版)M.高等教学出版社,2010.3刘舒帆等.数字信号处理实验(MATLAB版)M.西安电子科技大学出版社,2008指导教师签字Xxxxx系主任签字2013年 5 月 10 日摘 要数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(iir)滤波器和有限长冲激响应(fir)滤波器。fir数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。用窗函数设计滤波器首先要对滤波器提出性能指标。一般是给定一个理想的频率响应,使所设计的FIR滤波器的频率响应去逼近所要求的理想的滤波器的响应。窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列。数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。目前,数字信号滤波器的设计图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。近年来迅速发展起来的小波理论,由于其局部分析性能的优异在图像处理中的应用研究,尤其是在图像压缩图像、去噪等方面的应用研究,受到了越来越多的关注。关键词:FIR 窗函数 海明窗 有限长冲激响应 高通滤波器MATLAB目 录1 绪论1.1数字滤波器工作原理(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。从时域出发,截取有限长的一段冲击响应作为H(z)的系数,冲击响应长度N就是系统函数H(z)的阶数。只要N足够长,截取的方法合理,总能满足频域的要求。一般这种时域设计、频域检验的方法要反复几个回合才能成功。要设计一个线性相位的FIR数字滤波器,首先要求理想频率响应。是w的周期函数,周期为,可以展开成傅氏级数: (公式1) 其中是与理想频响对应的理想单位抽样响应序列。但不能用来作为设计FIR DF用的h(n),因为一般都是无限长、非因果的,物理上无法实现。为了设计出频响类似于理想频响的滤波器,可以考虑用h(n)来近似。 窗函数的基本思想:先选取一个理想滤波器(它的单位抽样响应是非因果、无限长的),再截取(或加窗)它的单位抽样响应得到线性相位因果FIR滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器。 (2)由性能指标确定窗函数W(n)和窗口长度N。 设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即: xn(n) = x(n) w(n) (公式2) 在频域上则有: (公式3) (3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量。 (公式4) 由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。1.2海明窗函数定义为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引起混叠,因此信号截短必然导致一些误差。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截短信号。海明窗函数的时域形式可以表示为: (公式5)它的频域特性为: (公式6)其中,为矩形窗函数的幅度频率特性函数。海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。调用方式: w = hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。1.3 MATLAB软件简介MATLAB是矩阵实验室(MatrixLaboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.MATLAB拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点:a.语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。b.运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。c.MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。d.程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。e.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。f. MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。g.MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。h.功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox,signl proceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。j.源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。2 实验设计2.1设计FIR数字滤波器的基本方法FIR数字滤波器的系统函数无分母,为 ,系统频率响应可写成:,令=,H(w)为幅度函数,称为相位函数。这与模和辐角的表示方法不同,H(w)为可为正可为负的实数,这是为了表达上的方便。如某系统频率响应 =sin4w,如果采用模和幅角的表示方法,sin4w的变号相当于在相位上加上(因-1= ),从而造成相位曲线的不连贯和表达不方便,用则连贯而方便。 窗函数法又称傅里叶级数法,其设计是在时域进行的。 函数一般是无限长且非因果的,设计时需用一个合适的窗函数把截成有限长的因果序列,使对应的频率响应(的傅里叶变换)尽可能好地逼近理想频率响应。窗函数法的主要缺点是:一、不容易设计预先给定截止频率的滤波器;二、满足同样设计指标的情况下所设计出的滤波器的阶数通常偏大。2.2 FIR数字滤波器设计的步骤首先确定技术指标,在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以2种方式给出。第一种是绝对指标。他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。他以分贝值的形式给出要求。本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。 然后进行性能分析和计算机仿真,上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。2.3窗函数法滤波器设计设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应,设计一个FIR数字滤波器频率响应,去逼近理想的滤波响应。然而,窗函数法设计FIR数字滤波器是在时域进行的,因而必须由理想的频率响应推导出对应的单位取样响应,再设计一个FIR数字滤波器的单位取样响应去逼近。设计过程如下: (公式7)加窗的作用是通过把理想滤波器的无限长脉冲响应乘以窗函数来产生一个被截断的脉冲响应,即并且对频率响应进行平滑。FIR滤波器单位冲激响应h(n):其单位冲激响应h(n)是有限长(),系统函数为: (公式8)在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处。FIR滤波器线性相位的特点:如果FIR滤波器的单位抽样响应h(n)为实数,而且满足以下任一条件: 偶对称h(n)h(N-1-n) 奇对称h(n)-h(N-1-n)其对称中心在n(N-1)/2处,则滤波器具有准确的线性相位。窗函数主要用来减少序列因截断而产生的Gibbs效应。但当这个窗函数为矩形时,得到的FIR滤波器幅频响应会有明显的Gibbs效应,并且任意增加窗函数的长度(即FIR滤波器的抽头数)Gibbs效应也不能得到改善。为了克服这种现象,窗函数应该使设计的滤波器:(1) 频率特性的主瓣宽度应尽量窄,且尽可能将能量集中在主瓣内;(2) 窗函数频率特性的旁瓣趋于 的过程中,其能量迅速减小为零。 在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗。这些窗函数在MATLAB中分别用boxcar、triang、hanning、hamming、kaiser实现。2.4数字滤波器一般实现方法用计算机软件实现:软件实现方法即是在通用的微型计算机上用软件实现。利用计算机的存储器、运算器和控制器把滤波所要完成的运算编成程序通过计算机来执行,软件可由使用者自己编写,也可以使用现成的。国内外的研究机构、公司已经推出了不同语言的信号滤波处理软件包。但是这种方法速度慢,难以对信号进行实时处理,虽然可以用快速傅立叶变换算法来加快计算速度,但要达到实时处理要付出很高的代价,因而该方法多用于教学与科研。采用DSP处理器来实现:DSP处理器是专为数字信号处理而设计的,如TI公司的TMS320CX系列,AD公司的ADSP2IX, ADSP210X系列等。它的主要数字运算单元是一个乘累加器,能够在一个机器周期内完成一次乘累加运算,配有适合于信号处理的指令,具备独特的循环寻址和倒序寻址能力。这些特点都非常适合数字信号处理中的滤波器设计的有效实现,并且它的速度快,成本低,在过去的20多年的时间里,软件可编程的DSP器件几乎统治了商用数字信号处理硬件的市场。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。采用固定功能的专用信号处理器实现:专用信号处理器采用专用集成电路ASIC(Application Specific Integrated Circuits)来实现,适用于过程固定而又追求高速的信号处理任务,是以指定的算法来确定它的结构,使用各种随机逻辑器件组成的信号处理器。它们体积小、保密性好,具有极高的性能,然而灵活性差。用FPGA等可编程器件实现:使用相关开发工具和VHDL等硬件开发语言,通过软件编程用硬件实现特定数字滤波算法。这一方法由于具有通用性的特点并可以实现算法的并行运算,无论是作为独立的数字信号处理,还是作为DSP芯片协作处理器,都是比较活跃的研究领域。如今,FPGA已成为数字信号处理系统的核心器件,尤其在数字通信、网络、视频和图像处理等领域。现在的FPGA不仅包含查找表、寄存器、多路复用器、分布式块存储器,而且还嵌入专用的快速加法器、乘法器和输入,输出设备。FPGA具有实现高速并行运算的能力,因而成为高性能数字信号处理的理想器件。此外,与专用集成电路(ASIC)相比,FPGA具有可重复编程的优点。在数字多普勒接收机的实现过程中,根据接收机的性能要求以及所选用的FPGA器件资源,选取最优的FlR滤波器实现结构。随着FPGA查找技术的发展,具有较快的滤波速度和消耗较少资源的DA算法在FIR数字滤波领域得到了广泛应用。2.5高通滤波器设计要求利用海明窗函数设计FIR数字高通滤波器的仿真,要求通带截止频率,阻带截止频率。首先设计一个理想滤波器系统,然后用汉宁窗函数进行截断,得到FIR数字滤波器。3 运行结果3.1 实验环境PC机 MATLAB3.2 开发工具和汇编语言MATLAB语言3.3 程序设计wp=0.75*pi; ws=0.48*pi; %输入设计指标deltaw=wp-ws; %计算过渡带的宽度N0=ceil(6.6*pi/deltaw); %按海明窗计算滤波长度NON=N0+mod(N0+1,2)windows=(hamming(N)' %使用海明窗,并将列向量变为行向量wc=(ws+wp)/2; %截止频率取通阻带频率的平均值 hd=ideal_lp(pi,N)-ideal_lp(wc,N); %建立理想高通滤波器b=hd.*windows; %求fir系统函数系数db,mag,pha,grd,w=freqz_m(b,1); %求解频率特性n=0:N-1;dw=2*pi/1000; %dw为频率分辨率,将02分为1000份subplot(2,2,1),stem(n,b); axis(0,N,1.1*min(b),1.1*max(b); subplot(2,2,2),stem(n,windows); axis(0,N,0,1.1);subplot(2,2,3),plot(w/pi,db); axis(0,1,-150,10);subplot(2,2,4),plot(w/pi,pha); axis(0,1,-4,4);function hd=ideal_lp(wc,N) %hd=点0到N-1之间的理想脉冲响应tao=(N-1)/2;n=0:(N-1);m=n-tao+eps; %加一个小数以避免0作除数hd=sin(wc*m)./(pi*m);functiondb,mag,pha,grd,w=freqz_m(b,a); %给定FIR滤波器系数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);grd=grpdelay(b,a,w);3.4 实验结果(图1)海明窗函数设计的高通滤波器仿真结果截图(图2)海明窗函数设计的高通滤波器响应图4 总结通过本次课程设计使我更加扎实的掌握了有关数字滤波器方面的知识,在这次课程设计中虽然遇到了很多的困难,但是经过一次又一次的查阅资料一次一次的认真思考,终于找出了原因。这次课程设计使我了解到知识还是需要通过实践才能真正的掌握住精髓。从查找资料,题目选定,到最后的实践成稿。正是在这其中学到了很多的东西,使我弄明白了不少的知识,也学到了不少的东西。我最大的收获是掌握了滤波器设计的步骤和方法。做课程设计是为了加深我们对平时学习的理论知识的理解,在理论和实验教学基础上进一步巩固所学基本理论和提高应用所学知识并加以综合应用的能力,培养我们将所学知识应用于实际的思想,提高分析和解决问题的能力,增强我们的综合能力,开发我们的智力,激发我们的创新精神,为毕业设计和以后工作打下必要基础。学习的过程是相互讨论共同进步的,多多讨论课题中遇到的问题,可以巩固我们的知识掌握能力,增加熟练运用度。既巩固了在课堂上学习的知识,也在查找资料的过程中也学到了很多课本上没有学习到的知识,可以说是收获颇丰,提高了自己独立思考能力和动手能力。 另外,采用MATLAB设计滤波器,使原来非常繁琐复杂的程序设计变成了简单的函数调用,为滤波器的设和实现开辟了广阔的天地,尤其是Matlab工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。其中的信号处理工具箱、图像处理工具箱、小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能。MATLAB 信号处理工具箱为滤波器设计及分析提供了非常优秀的辅助设计工具, 在设计数字滤波器时, 善于应用MATLAB进行辅助设计, 能够大大提高设计效率。参 考 文 献1程佩青.数字信号处理(第三版)M.高等教学出版社,2010.2刘舒帆等.数字信号处理实验(MATLAB版)M.西安电子科技大学出版社,2008.3郭仕剑等.MATLAB 7.x数字信号处理,人民邮电出版社,2006年.4吴大正.信号与线性系统分析(第四版)M.高等教学出版社,2010.专业课程设计心得体会学生姓名Xxxxx院/系部物理系专业电子信息科学与技术班级1心得体会指导教师意见: 签名: 年 月 日课程设计成绩评定表系部: 物理系 班级: 10电科本1 姓名: xxxx 学号: 2xxxxxxx 项目分值优秀(100>x90)良好(90>x80)中等(80>x70)及格(70>x60)不及格(x<60)评分参考标准参考标准参考标准参考标准参考标准平时考核20学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作。学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务。学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作。学习态度尚可,能遵守组织纪律,能按期完成任务。学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度。课程设计报告报告内容组织书写20结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰。结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰。结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰。结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整。内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰。技术水平20设计合理、理论分析与计算正确,文献查阅能力强、引用合理、调查调研非常合理、可信。设计合理、理论分析与计算正确,文献引用、调查调研比较合理、可信。设计合理,理论分析与计算基本正确,主要文献引用、调查调研比较可信。设计基本合理,理论分析与计算无大错。设计不合理,理论分析与计算有原则错误,文献引用、调查调研有较大的问题。创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧上机操作30实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力。实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力。实验数据比较准确,有一定的实际动手能力。实验数据无大错。实验数据不可靠,实际动手能力差。指导教师评定成绩:指导教师签名: 年 月 日专心-专注-专业