基于MATLAB的fir数字滤波器设计及simulink仿真实现毕业设计(25页).doc
-基于MATLAB的fir数字滤波器设计及simulink仿真实现毕业设计-第 17 页2012届毕业设计题 目 基于Matlab的FIR低通滤波器设计及simulink仿真实现学 院 自动化与电气工程学院 专 业 测控技术与仪器 班 级 083 学 号 108034063 学生姓名 乔静兵 指导教师 施秧 完成日期 2012年5月25日 浙 江 科 技 学 院本 科 毕 业 论 文 (2012届) 题 目 基于Matlab的FIR低通滤波器设计及simulink 仿真实现 学 院 自动化与电气工程学院 专 业 测控技术与仪器 班 级 083 学 号 108034063 学生姓名 乔静兵 指导教师 施秧 完成日期 2012年5月25号 浙江科技学院毕业设计、学位论文版权使用授权书本人 乔静兵 学号 108034063 声明所呈交的毕业设计、学位论文 基于Matlab的FIR低通滤波器设计及simulink仿真实现 ,是在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。本毕业设计、学位论文作者愿意遵守浙江科技学院 关于保留、使用学位论文的管理办法及规定,允许毕业设计、学位论文被查阅。本人授权 浙江科技学院 可以将毕业设计、学位论文的全部或部分内容编入有关数据库在校园网内传播,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计、学位论文。(保密的学位论文在解密后适用本授权书)论文作者签名:乔静兵 导师签名: 施秧 签字日期: 2012 年5月 25日 签字日期: 2012 年 5 月 25日 摘 要数字滤波器是数字信号处理的一个重要的技术分支。在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。在工程实践中,一般对信号处理要求有实时性和灵活性,而已有的一些软件和硬件计算和实现方式则难以同时达到这两方面的要求。而随着EDA技术和可编程逻辑器件的发展,使用MATLAB计算及实现FIR滤波的技术已经非常成熟。随着滤波技术的发展,给人们带来了很多方便不论是学习、生活还是工作中,都有着不可小觑的作用。在设计滤波器中,首先是基于Matlab软件,然后再利用Matlab里的simulink平台进行实现。本次毕业设计首先对滤波器的现状和已有的技术进行了深入的研究,在研究的基础上开发出一个基于MATLAB的FIR低通滤波器,通过编写程序,得到滤波器的仿真图,进行比较、分析。在这次毕业设计中,针对IIR和FIR滤波器各自的优点和缺点进行比较、分析,得出FIR的优点,得到最终设计FIR滤波器更为实用。实践证明,与其他的滤波器相比,FIR低通滤波器应用更为广泛。关键词: MATLAB;FIR;低通滤波器Abstract Digital filter is an important technical branch of a digital signal processing.In modern electronic systems, the FIR digital filter with good linearity is widely used, which belongs to one of the basic digital signal processing module .In engineering practice, the general signal processing need require the real time and flexibility, and some software and hardware computing and realization way is difficulty to achieve these two requirements at the same time.As EDA technology and programmable logic device development, the use of MATLAB algorithm and Realization of FIR filter has a very sophisticated technology.With the filter technology development, bringing convenience to people whether it is learning, life and work, have an essential role.In the design of filter, the first is based on the Matlab software, and then using the Matlab simulink platform to achieve. MATLAB based on the FIR low-pass filter, the filter is obtained by writing a program, the simulation map, comparative, analysis.In this graduation design, IIR and FIR filter for the respective advantages and disadvantages are compared, analysis, obtains the advantages of FIR, to get the final FIR filter design is more practical.Practice has proved that, compared with other filters, the FIR low-pass filter is more widely applied.Keywords: MATLAB;FIR;Lowpass filter目 录摘要.Abstract.1 绪论. 11.1 课题研究背景.1 1.2 国内外现状和发展趋势. 11.3 MATLAB概述. .21.3.1 MATLAB发展历史.21.3.2 MATLAB的语言优势.32 滤波器技术概述.52.1 滤波器概述.52.2 滤波器的工作原理. .5 2.2.1 模拟滤波器的工作原理. .5 2.2.2 数字滤波器的工作原理. .62.3 FIR低通滤波器 .7 2.3.1 FIR滤波器的原理.7 2.3.2 FIR滤波器的应用及特点.82.4 滤波器的基本特性.9 2.4.1 模拟滤波器与数字滤波器的基本特性.93 FIR低通滤波器设计.123.1 FIR低通滤波器设计.12 3.1.1 FIR低通滤波器设计原理.12 3.1.2 窗函数法设计及MATLAB实现原理.12 3.1.3 FIR数字滤波系统.133.2 窗函数法设计及MATLAB仿真.13 3.3 基于Matlab仿真系统.15 3.3.1 simulink仿真系统原理.15 3.3.2 simulink仿真系统. . . .16 3.3.3 模型的创建和模型文件. . .16 3.3.4 simulink仿真. . .174 总结.21 致谢.22 参考文献.231 绪 论1.1 课题研究背景 随着21世纪经济全球化的到来,人们的生活水平不断的提高,人们对精神文化的要求也越来越高,对周边环境的要求也日益提上了日程。喜欢高质量的影碟,安静的锻炼环境,修身养性的休憩场所,等等1。然而,不尽人愿的是,在现如今的一个高科技发展的世界中,在任何一个场所,都离不开各种机器设备的应用系统的运作。而在一个实际的应用系统中, 由于设备本身的缺陷和外界环境的无常变化, 总存在着各种干扰的影响,使信号中掺杂了各种噪音。比如音频信号中的混杂的高频成分的噪声使得音乐听起来非常刺耳, 失去了原有的悦耳的音质。为了提高理想信号的信噪比, 可以对理想信号进行滤波, 尽可能的将信号滤除掉。滤波有模拟滤波和数字滤波之分, 但是随着信息时代和数字世界的到来, 数字信号处理已经成为当今一门非常重要的学科和技术领域, 它在图像、语音、通信、军事、雷达、自动控制、航空航天、医疗和家用电器等众多领域得到了广泛的应用。而在数字信号处理应用中, 数字滤波器十分重要并已获得广泛应用。在数字滤波中,又有IIR和FIR滤波器之分2,IIR数字滤波器的设计保留了一些典型的模拟滤波器优良的幅度特性,但它所涉及的滤波器相位特性通常情况下都是非线性的, 而FIR滤波器则可以在即保证幅度特性又满足技术要求的同时, 也很容易地做到严格的线性的相位特性3。因此,FIR 高度的线性和稳定性使其受到了使用者很大的欢迎,将其广泛的应用在实际设计中。低通滤波对人们的生活如此重要,所以,进一步加深对低通滤波的研究将有及其重要的意义。1.2 国内外现状和发展趋势随着信息时代和数字世界的到来, 数字信号处理已成为当今一门及其重要的学科和技术领域。数字信号处理在通信、军事、医疗、自动控制、雷达、语音、航空航天、图像和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中, 数字滤波器十分重要井已获得广泛应用。数字滤波是数字信号处理的一种重要算法,在数字信号处理应用中, 滤波占有十分重要的地位,如对信号的过滤、检测、预测等, 都要广泛地用到滤波器。数字滤波器是使用最为广泛的装置,在工业、农业和其他行业均有应用。数字滤波器按其单位脉冲响应的长度可分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器两类。IIR数字滤波器的设计保留了一些典型模拟滤波器优良的幅度特性, 但所涉及的滤波器相位特性一般是非线性的, 而FIR滤波器则可在保证幅度特性并满足技术要求的同时, 也很容易做到严格的线性相位特性。FIR 滤波器的线性与稳定性使其应用更为广泛,这对于要求高保真度的信号处理有很重要意义。利用MATLAB 实现FIR 低通数字滤波器的设计,并对被高频干扰的信号进行滤波,达到了预期结果。因而,不少学者针对MATLAB本身的特点及低通滤波器的特点和性能先后提出了许多针对性的想法。使得FIR低通滤波器的设计有了很大的改善。然而,随着数字信号的处理和EDA技术的发展,将对低通滤波器的设计提出更高的要求,因而,进一步加深对低通滤波器的研究是很有必要的。1.3 MATLAB概述1.3.1 MATLAB发展历史 MATLAB是“ 矩阵实验室 ”MATrix LABoratory 的缩写,是由美国MathWorks 公司开发的集符号计算、可视化和图形数值计算三大基本功能于一体,操作简单、功能强大的语言。MATLAB提供了一个人机交互的数学系统环境,此系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。 MATLAB语言的创造者是Cleve Moler教授,Cleve Moler教授在数值分析,特别是在线性代数的领域中有很大影响,他参与并编写了数值分析领域中的一些著名的著作和两个重要的Fortran程序:EISPACK和LINPACK。他曾经在斯坦福大学、密西根大学和新墨西哥大学担任数学与计算机科学教授。1980年前后,当时的新墨西哥大学计算机系主任Moler教授在教授线性代数时,发现用其他高级语言编程很不方便,因而构思并开发了MATLAB (MATrix LABoratory,即矩阵实验室),此软件利用当时的数值线性代数领域里最高水平的EISPACK和LINPACK两大软件包中可靠的子程序,用Fortran语言编写了集科学计算、命令翻译于一身的一套交互式软件系统4。所谓交互式语言,指的是人们给出一条命令,立即就可以得出该命令的结果。该语言无需像C语言那样,先是要求人们去编写源程序,再对之进行编译、连接,最终才能形成可执行文件。这无疑会给使用者带来极大的方便。早期的MATLAB是用Fortran语言编写的,只能作矩阵运算;绘图也只能用极其原始的方法,即用星号描点的形式画图;内部函数也只提供了几十个。但即使其当时的功能十分简单,当它作为免费软件出现以来,还是吸引了大批的使用者。1984年,Cleve Moler和John Little成立了Math Works公司,Cleve Moler一直担任该公司的首席科学家。发行了Matlab第1版(DoS版本1.0)。正式把MATLAB推向市场。MATLAB的第一个商业化版本是同年推出的是3.0的DOS版本。并继续进行MATLAB的研究和开发,逐步将其发展成为一个集符号计算、数学建模、图像处理、数值处理、文字处理、图形处理、实时控制、信号处理、动态仿真为一体的数学应用软件。Matlab以商业形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如德国的KEDDC,瑞典的LUND和SIMNON,)纷纷淘汰,而改以Matlab为平台加以重建。The MathWorks公司于1992年推出了具有划时代意义的MATLAB 4.0版本,并于1993年推出了其微机版,可以配合Microsoft Windows一起使用,推出了MATLAB 4.1版。也是在这年(1993年)MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。MathWorks公司因此加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算互补发展的新时代。1994年推出了4.2版本,其扩充了4.0版本的功能,尤其在图形界面的设计方面提供了新的方法。1997年推出的MATLAB 5.0版本允许了更多的数据结构,如数据结构体、单元数据、对象与类、多维矩阵等,使其成为一种更方便编程的语言。1999年初推出的MATLAB 5.3版在许多方面又改进了MATLAB语言的功能。2000年10月底推出了其全新的MATLAB 6.0正式版(Release 12),在核心数值算法、外部接口、应用桌面、界面设计等诸多方面有了很大的改进。 虽然MATLAB语言是计算数学专家倡导并开发的,但其普及和发展离不开自动控制领域学者的贡献。 甚至可以说,MATLAB语言是自动控制领域学者和工程技术人员捧红的,因为在MATLAB语言的发展进程中,很多有代表性的成就和控制界的要求与贡献是分不开的。至今为止,大多数工具箱也都是控制方面的。MATLAB有很强大的方便实用的绘图功能、数学运算能力及语言的高度集成性,它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。如果说有一种十分有效的工具能解决在教学和研究中遇到的问题,那么这种工具正是MATLAB。它可以帮助使用者从繁琐、无谓的底层编程中解放出来,把宝贵时间更多地花在解决问题中,这样肯定会提高工作效率。 现在,MATLAB已经成为国际上最流行的科学与工程计算的软件工具,现在的MATLAB已经不单单是一个“矩阵实验室”了,它已成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。1.3.2 MATLAB的语言优势 概括的讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。MATLAB语言以矩阵为基本单位,包括输入输出、函数、数据结构、控制流语句及面向对象等特点的高级语言。 MATLAB语言之所以能如此迅速地普及并被人们应用,显示出如此旺盛的生命力,是因为它有着不同于其他语言的特点。被称作第四代计算机语言的MATLAB,利用其丰富的函数资源,帮助编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点是简洁。MATLAB用直观的,符合人们思维习惯的代码,代替了C和Fortran语言的冗长代码。MATLAB给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点: (1)语言简洁紧凑,使用方便灵活。MATLAB程序书写自由,利用其丰富的库函数避开繁杂的子程序编程任务,减缩了不必要的程序,由于库函数都有本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。 (2)运算符和库函数极其丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。 (3)MATLAB不但具有结构化的控制语句(如while循环、for循环、if语句和break语句)还具有面向对象编程的特性。 (4)程序自由度大,语法限制不严格。例如,在MATLAB里,用户无需对矩阵预定义就便可使用。 (5)程序的可移植性良好,几乎不做修改就可以在各种型号的计算机和操作系统上运行。 (6)MATLAB的图形功能强大。在Fortran和C语言里,绘图都不怎么容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有很强的编辑图形界面的能力。(7)MATLAB另一大的特点就是具有较强大的工具箱。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、文字处理功能、图示建模仿真功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如control、communication toolbox、signal processing toolbox、toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用于无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。 (8)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。 2 滤波器技术概述 2.1 滤波器概述凡是可以用来进行信号处理的装置或设备都可以称为滤波器。在近现代电信设备和各类控制系统中,滤波器应用极为普遍;在人们使用的所有的电子部件中,使用最多,技术最为复杂的可以说是滤波器了。滤波器的质量直接决定产品的优劣,所以,对滤波器的研究和生产一直被生产商们所重视。对于不同的滤波器,每个频率范围的信号的强弱程度不同。当使用在音频应用时,它可以被称为高频剪切滤波器, 或高音消除滤波器。低通滤波器概念的形式有许多种,其中包括电子线路(如音频设备中使用的hiss 滤波器、平滑数据的数字算法、音障(acoustic barriers)、图像模糊处理等等,这两个工具都是通过剔除掉短期波动、保留长期发展趋势提供了信号的平滑形式。低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(moving average)所起的作用;低通滤波器有很多种,其中,最通用的就是巴特沃斯滤波器和切比雪夫滤波器。滤波器各种形式的分类,一般可以归纳为如下几种。(1)按被处理信号类型分类-按被处理信号类型分类,可分为模拟滤波器和离散滤波器两大类。其中模拟滤波器又可分为有源、无源、异类三个小分类;离散滤波器又可分为数字、取样模拟、混合三个小分类。(2)按选择的物理量分类-按选择物理量分类,滤波器可分为幅度选择、频率选择、信息选择(例如匹配滤波器)和时间选择(例如PCM制中的话路信号)等四类滤波器。(3)按频率通带范围分类 -按频率通带范围分类,滤波器可分为低通、高通、带通、带阻、全通五个类别,而梳形滤波器属于带通和带阻滤波器,因为它有周期性的通带和阻带3。2.2 滤波器的工作原理2.2.1 模拟滤波器的工作原理大家都知道,凡是对模拟信号进行线性滤波的一种线性时不变系统就被称为模拟滤波器,如图1.1所示。在时域内,它的动态特性可以用系统的单位冲激函数的响应来描述,也就是该滤波系统在任何时刻对输入单位冲激信号=(t)的输出响应。此函数从时域上反映了该滤波系统的传输特性。对于任意输入信号,系统的输出可以用卷积来表示:上式表明在对线性滤波器系统进行时域分析时,采用了叠加原理,先将任意输入信号的波形分成不同时间的窄脉冲之和,再分别求出各个脉冲通过滤波器之后的响应,再进行线性叠加从而得出总的输出信号。模拟滤波器,H(s) (1.2)图1.1模拟滤波器原理在进行频域分析时,线性滤波器的转移函数等于系统的单位冲激函数的响应的拉普拉斯变换: (1.3)很明显,当s=j,上式就成为傅立叶变换的表达式,此表达式反映了滤波器的传输特性对各种频率的响应,也就是滤波器的频率响应函数,它决定着滤波特性。当滤波器输入信号与输出信号进行拉普拉斯变换,得 (1.4)这表明两信号卷积的变换等于各自变换的乘积。在频谱关系上,一个输入信号的频谱,经过滤波器的作用后,被变换成的频谱。所以,根据不同的滤波要求来选定,就可以得到不同类型的模拟滤波器。还可以看出,滤波器的滤波过程就是完成信号与它的单位冲激函数响应之间的数学卷积运算过程。2.2.2 数字滤波器的工作原理在数字滤波中,我们大部分讨论的都是离散时间序列。如图1.2所示。设输入序列为,离散或数字滤波器对单位抽样序列的响应为。因为在时域离散信号系统中所起的作用就相当于单位冲激函数在时域连续信号系统中所起的作用一样。数字滤波器,H(z)图1.2 数字滤波器原理数字滤波器的序列即是这两个序列的离散卷积,即 (1.5) 同样,两个序列卷积的z变换等于各自z变换的乘积,即 (1.6)用代入上式,其中T为抽样周期,则得到 (1.7)式中和 分别为数字滤波器输入序列和输出序列的频谱,而为单位抽样序列响应的频谱。由此可见,输入序列的频谱经过滤波后,变为 ,按照的特点和我们处理信号的目的,选取适当的使的滤波后的符合我们的要求5。2.3 FIR低通滤波器2.3.1 FIR滤波器的原理在国内外的研究中,设计FIR滤波器所涉及到的乘法运算方式:并行乘法、位串行乘法和采用分布式算法的乘法。并行乘法虽然速度快,但是它占用的硬件资源极大。随着滤波器的阶数的增加,乘法器位数也随之增长很快,硬件规模将变得非常庞大。 位串行乘法器的实现方法主要是通过先对乘法运算进行分解,然后用加法器来完成乘法,也就是没有乘法操作的乘法器。由于一个8*8位的乘法器输出为16位,为了能得到正确的16位结果,串行输入的二进制补码数就得进行符号位扩展,就是在串行输入的8位二进制补码数前面补8个0(对正数)或8个1(对负数)后再输入乘法器。如果每一位的运算都要用一个时钟周期的话,要得出正确结果就要16个时钟周期,这就意味着这类乘法器要完全计算出结果,它的延迟必将会很大。所以位串行乘法器虽然可以使乘法器的硬件规模达到了最节省的优点,但是由于它是位串行运算,导致它的运算周期太长,而我们要折衷考虑速度与规模,那这就不是最优的选择了。 分布式算法(distributed arithmetic,DA)的主要特点是巧妙地利用了ROM查找表将固定系数的乘累加(Multiplyaccumulator,MAC)运算转化为查表操作,它与传统算法实现乘累加运算的不同在于执行部分积运算的先后顺序不同。就小位宽来说,DA算法设计的FIR滤波器的速度可以显著的超过基于MAC的设计。 相对于前两种方法,DA算法不但可以全并行实现,还可以全串行实现,还可以串并行结合实现,可以在硬件规模和滤波器速度之间作适当的折中,所以是现在被研究的主要方法。2.3.2 FIR滤波器的应用及特点 FIR滤波器具有幅度特性可随意设计、线性相位特性可严格精确保证等优点,因此在要求相位线性信道的现代电子系统,如图像处理、数据传输等波形传递系统中,具有很大吸引力。FIRIIR设计方法一般没有解析的设计公式,要借助于计算机程序完成。利用AF的设计图表,可简单有效的完成设计。设计结果可得到幅频特性(可多带)和线性特性(优点)。只能得到幅频特性,想频特性未知(缺点),如需线性相位,须全通网络校准,但增加滤波器阶数和复杂程度。稳定性极点全部在原点(稳定)。无稳定性问题。因果性总是满足,任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列。结构非递归递归系统运算误差一般无反馈,运算误差小。有反馈,由于运算中的四舍五入会产生极限环。快速算法可用FFT减少运算量。无快速运算方法。 噪声的基本定义是外来的不想要的干扰信号(或伴随着想要的信息一起发生的无关的或没有意义的数据)。FIR低通滤波器允许用户滤掉这些不想要的信号干扰。噪声可能有无穷无尽的来源,包括设计内部来源或外部来源,噪声会挡住有用的信号。噪声会使您很难在一个信号中找到想要的信息,譬如说测量一个信号的真实电压。提高抖动,增加了定时测量的难度。 几乎处理电路的每个工作人员都要用一定的时间和精力去处理噪声,或者找出噪声来源修复它,或者减少噪声对测量的影响。设计工程师需要做的是找到干净的没有噪声的轨迹,然后把重点放在设计中预计的信号上。其它情况下,干净的轨迹可以用于报告和文档,清楚明白地显示设计运行情况。滤波器频率读数允许用户检定噪声的频率。即使在单次波形上,采集后仍可以使用这种调节,仔细地检测信号。有时也可以使用其它工具来降低信号上的噪声(如带宽限制器或平均模式),可是这些工具有许多限制,如滤波频率有限,没有指定固定滤波,或只能用于重复信号上。用来减少信号上的噪声的其它工具(如带宽限制器或波形平均模式)只会去掉滤波频率以上的信号信息,或去掉不重复的毛刺。使用FIR低通滤波器过滤信号可以让使用者得到很好的效果。2.4 滤波器