基于MATLAB的FIR和IIR数字滤波器的设计与仿真设计.docx
《基于MATLAB的FIR和IIR数字滤波器的设计与仿真设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的FIR和IIR数字滤波器的设计与仿真设计.docx(45页珍藏版)》请在冰豆网上搜索。
基于MATLAB的FIR和IIR数字滤波器的设计与仿真设计
摘要
信息无处不在,但在步入网络信息时代之后,无论是信息的数量,还是其传
递的速度,都在快速地增加。
信号是信息传播的载体,但在信号产生、发送以与
传播的过程中,都会不可避免地引入一些其他的信号成分。
所以,在进行信号处
理前,就需要对所接收到的信号进行过滤,以去掉噪声干扰成分,从而得到有效
的信号成分。
在电子系统中,这个任务通常由滤波器来完成。
本文主要容是通过MATLAB工具设计两种数字滤波器的基本方法。
这两种数字滤波器指无限脉冲响应(IIR,InfiniteImpulseResponse)滤波器和有限脉冲响应(FIR,FiniteImpulseResponse)滤波器,输入和输出信号皆为数字信号。
以往传统的数字滤波器设计方法步骤繁琐,计算环节繁杂,一旦设计完成,无法便捷修改滤波特性曲线,十分不便,以上缺点极大的限制了数字滤波器的发展与应用。
而MATLAB与其附带的工具箱功能十分强大,我们利用该软件设计上述的两种滤波器,可以做到随时把结果曲线与目标滤波特性曲线对比,从而做出改进,节省时间和工作量,优点十分显著。
本论文分为三部分:
第一部分为绪论,简单介绍数字信号处理中滤波器的作用和前景;第二部分介绍FIR滤波器设计的原理,并且介绍使用MATLAB设计FIR数字滤波器的方法,同时在MATLAB下进行仿真;第三部分介绍IIR滤波器设计的原理,并且介绍使用MATLAB设计IIR数字滤波器的方法,同时在MATLAB下进行仿真。
关键词:
MATLAB,FIR数字滤波器,IIR数字滤波器,设计,仿真
Abstract
Informationiseverywhere,butafterenteringtheeraofnetworkinformation,regardlessoftheamountofinformation,oritstransferspeed,areincreasingatahighspeed.Thecarriersignalisthedisseminationofinformation,butinthesignalgeneration,transmissionanddisseminationprocess,willinevitablyintroducesomeothersignalcomponent.So,insignalprocessing,weneedonthereceivedsignalisfilteredtoremovenoise,interference,soastoobtainthesignalcomponenteffective.Inelectronicsystems,thistaskisusuallyaccomplishedbyfilter.
ThemaincontentofthispaperisthebasicmethodofusingMATLABtoolstodesigntwokindsofdigitalfilters.Thesetwokindsofdigitalfilterwithinfiniteimpulseresponse(IIR,InfiniteImpulseResponse)filterandthefiniteimpulseresponse(FIR,FiniteImpulseResponse)filter,theinputandoutputsignalsaredigitalsignals.Thedesignmethodoftraditionaldigitalfilteriscomplicated,complicatedcalculationprocess,oncethedesigniscomplete,notconvenienttomodifythefiltercharacteristiccurve,veryinconvenient,theabovedisadvantagesgreatlylimitsthedevelopmentandapplicationofdigitalfilter.WhileMATLABanditstoolboxfunctionwithverystrong,weusethesoftwaredesignoftwokindsoffilterabove,canbedoneatanytimetheresultscurveandtargetfilteringcharacteristics,soastomakeimprovements,savetimeandeffort,notableadvantages.
Thispaperisdividedintothreeparts:
thefirstpartisthepreface,andProspectofdigitalsignalprocessingisintroducedinthefilterfunction;thesecondpartintroducestheprincipleofFIRfilterdesign,andintroducesthemethodofusingMATLABtodesignFIRdigitalfilter,andthesimulationontheMATLAB;thirdpartintroducestheprincipleofIIRfilterdesign,andintroducesthemethodofusingMATLABIIRdigitalfilterdesign,andSimulationinMATLAB.
Keywords:
MATLAB,FIRdigitalfilter,IIRdigitalfilter,design,simulation
第一章绪论..................................................................................................................1
1.1研究数字滤波器的意义与背景.........................................................................1
1.2数字滤波器的分类.............................................................................................3
1.3论文工作与编排.................................................................................................4
1.4本章小结.............................................................................................................4
第二章理论依据
2.1系统设计的理论依据
2.1.1数字滤波器概述
2.1.2FIR和IIR数字滤波器比较
2.2MATLAB中的滤波器设计工具
2.3本章小结
第三章基于MATLAB的FIR数字滤波器设计
3.1MATLAB软件简介
3.1.1MATLAB介绍
3.1.2S-function介绍
3.2FIR滤波器基础简介
3.2.1FIR滤波器的基本特性
3.2.2主流FIR滤波器的硬件实现方法
3.3MATLAB滤波器工具设计FIR滤波器实例
3.3.1FIR滤波器的设计
3.3.2FIR滤波器的仿真
3.4Ti公司基于DSP实现FIR滤波器的程序
3.5本章小结
第四章基于MATLAB的IIR数字滤波器设计
4.1IIR滤波器基础简介
4.2MATLAB滤波器工具设计IIR滤波器实例
4.2.1IIR滤波器的设计
4.2.2IIR滤波器的仿真
4.3本章小结
第五章总结与展望
参考文献
致
第一章绪论
在过去的30年间,电子信息技术得到了飞速发展。
而且,它正越来越多地影响人们的生活和工作,并逐渐改变着人们的交流方式。
这一方面要归功于电子科学技术,特别是微电子技术和计算机技术的蓬勃发展所带来的先进设计方法学与设计流程的高级化,自动化和普与化。
另一方面也得益于人们在生活工作过程中不断提出的更高的要求和更新的想法。
这些无疑都为现有的电子科学技术提出了更多的挑战,同时也为电子科学技术的发展指明了方向。
信息无处不在,但在步入网络信息时代之后,无论是信息的数量,还是其传递的速度,都在快速地增加。
信号是信息传播的载体,但在信号产生、发送以与传播的过程中,都会不可避免地引入一些其他的信号成分。
所以,在进行信号处理前,就需要对所接收到的信号进行过滤,以去掉噪声干扰成分,从而得到有效的信号成分。
在电子系统中,这个任务通常由滤波器来完成。
目前,日益巨大的信号量对滤波器信号实时处理性能的要求越来越高,而模拟滤波器己难以满足。
因此,对于数字信号处理的研究,特别是对数字滤波技术的研究,是十分有意义的。
1.1研究数字滤波器的意义与背景
从带有干扰的原始信号中提取有效信号并对其进行处理,几乎是所有学技术领域都必然涉与的重要环节。
信号处理的目的是对信号的特征参数进行估计,或将信号转变为人们所需要的形式。
信号处理的任务主要是对信号进行采样接收、频谱分析、域变换、综合和估值识别等。
在自然界中,信号均以声、光、磁、热、电等形式广泛地存在着,这些信号的幅度都随时间连续变化,这种信号被称为模拟信号;而为了对信号进行深入和细致地分析,又人为引入另一种信号,即数字信号,其特点是信号的幅度随着时间离散变化。
据此,信号处理系统可以分为两种:
模拟信号处理系统和数字信号处理系统。
在传统的电子技术中,信号的采集和处理往往建立在模拟电路的基础上,即传统的信号处理系统通常由电阻、电容、电感和晶体管等分立元器件构成。
到了20世纪60年代,由于大规模集成电路和计算机的迅速发展,数字技术得到了较快提升,这使数字信号被广泛应用于信号处理的设想成为可能,数字信号处理系统应运而生。
而数字信号处理系统通常是数值算法的体现,故这种系统既可以通过硬件电路实现,也可以通过软件编程实现。
随着电子通信产业的发展,单位时间有越来越多的数据等待发送和接收,这就对信号处理系统的实时性提出了越来越高的要求。
与模拟信号处理系统相比,数字信号处理系统具有更好的灵活性和稳定性,更高的精度和性能等优势,同时也便于大规模集成。
所以,数字信号处理系统正逐渐取代模拟信号处理系统,而被广泛应用于语音、图像、通信、雷达[1]、医学、地质、航空航天、仪表自动化等工程领域中,数字信号处理技术也越来越受到人们的关注。
所谓数字信号处理,主要是指利用计算机或专用处理设备对数字信号进行分析、变换、综合、估计与识别等加工处理的过程。
数字信号处理的核心容是快速傅里叶变换和数字滤波技术。
人类社会发展至今,社会主体本质上基本己经是数字化网络化的信息世界,所以对数字信号的处理与我们的生活密切相关,不可分割:
军事上数字信号处理关系到尖端武器的性能以与国家和人民的安全;工业上它与我们所用到的各类电子产品的成本和质量(也就是产品竟争力)休戚相关[2]。
在数字化的社会活动中,数字信号的处理关系到各行各业的每个角落,每个学科都有用到数字信号处理的地方,而数字信号处理也以花样繁多的形式与各个学科形成交叉学科,带动国民经济的快速发展。
然而在全球数字信号处理(DSP)技术领域中,力能扛鼎的角色非数字滤波器莫属[3]。
数字滤波技术作为数字信号处理的重要组成部分,其主要任务是从带有噪声干扰的信号中提取所需要的有效信号,同时抑制不需要的噪声信号。
这项技术通常被应用于各种数字系统中对信号进行前置处理的模块。
值得一提的是,数字滤波技术不会涉与模拟滤波技术中所必须用到的电感和电容等元器件,因此能够从根本上克服模拟滤波技术所无法避免的电压漂移、温度漂移和噪声等问题[4]。
而且,通过对数字信号处理芯片进行编程还能够方便地改变数字滤波器的特性。
我们把一个能够接收数字信号序列,然后将接收到的信号序列经过某个具有步骤有穷性和精度有限性的算法(该算法会将输入信号序列进行数学变换处理),然后输出符合使用者要求的选择性传输特性的数字信号的数字信号变换系统叫做数字信号滤波器,该系统使输入的信号序列的频率谱图和振幅谱图发生形变,保留或者增强有效的信号频率部分,摒弃或者尽量抑制无效的信号频率部分,最后把经过上述处理的数字信号作为输出信号[5]。
按照滤波器的作用围,我们把数字信号滤波器和模拟信号滤波器分为带通、高通、低通若干种,这两种滤波器的基本工作原理基本一样,特性略有不同[6]。
数字滤波器的特点是:
灵活性强,可随时对滤波器频谱进行调整,滤波稳定性高精度高,而且数字化的数据处理本身就比模拟信号处理优越很多[7]。
按照数字滤波器的的脉冲响应时域特性我们把其分为两种:
无限脉冲响应(IIR,InfiniteImpulseResponse)滤波器和有限脉冲响应(FIR,FiniteImpulseResponse)滤波器[8-10]。
数字滤波器应用广泛:
在家用电器领域,电视机、电子计算机、收音机和影碟机等都需要滤波器;在医疗设备领域,X光扫描仪、CT扫描仪、核磁共振仪以与其他扫描设备均需要数字滤波器;在军事科技领域,各类通讯设备、雷达监控设备、载具导航系统以与飞机坦克潜艇等部电控系统都离不开数字滤波器。
一言以蔽之,在现代社会中,凡是有电子设备参与的领域,都离不开数字滤波器所发挥的巨大作用。
综上所述,以数字技术代替模拟结构来实现滤波功能,将具有更大的优势和
更加广阔的应用前景。
而且,对数字滤波技术的研究,也将促进数字信号处理在数字图像处理、模式识别与谱分析等领域中的应用。
1.2数字滤波器的分类
按照不同的分类方法,数字滤波器有许多种类,但总起来可以分成两大类:
经典滤波器和现代滤波器。
经典滤波器的特点是其输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器滤除干扰,得到纯净信号,达到滤波的目的。
但是,如果信号和干扰的频谱相互重叠,则经典滤波器不能有效地滤除干扰,最大限度地恢复信号,这时就需要现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等最佳滤波器。
现代滤波器是根据随机信号的一些统计特性,在某种最佳准则下,最大限度地抑制干扰,同时最大限度地恢复信号,从而达到最佳滤波的目的。
经典数字滤波器从滤波特性上分类,可以分成低通、高通、带通、带阻等滤波器。
但是理想的滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果且无限长的,我们只能按照某些准则设计滤波器,使之在误差容限逼近理想滤波器,理想滤波器可作为逼近的标准。
另外,需要注意的是,数字滤波器的频率响应函数H(ejw)都是以2π位周期的,低通滤波器的通频带中心位于2π的整数倍处,而高通滤波器的通频带中心位于π的奇倍数处,这一点和模拟滤波器是有区别的。
一般在数字频率的主值区[-π,π]描述数字滤波器的频率响应特性。
数字滤波器从实现的网络结构或者从单位脉冲响应长度分类,可以分成无限长单位脉冲响应(IIR)滤波器和有限长单位脉冲响应(FIR)滤波器。
它们的系统函数分别为:
(1-1)
(1-2)
(1-1)式中的H(z)称为N阶IIR数字滤波器系统函数;(1-2)式中的H(z)称为N-1阶FIR数字滤波器系统函数。
根据滤波器对信号处理作用又将其分为选频滤波器和其他滤波器。
上述低通、高通、带通和带阻滤波器均属于选频滤波器,其他滤波器有微分器、希尔伯特滤波器、频谱校正等滤波器[11]。
1.3论文工作与编排
鉴于数字滤波器具有上述许多优于模拟滤波器的特点以与重要的应用背景,本文将基于数字信号处理和数字滤波技术的基本原理,对数字滤波器的硬件实现方案以与有助于系统性能提升和模块结构简化的方法进行讨论。
同时,也将借助MATLAB工具软件,完成对一款32阶FIR数字滤波器的设计和一款4阶IIR数字滤波器的设计。
本文共分为五章,各章容具体安排如下:
第一章为绪论,主要概述了数字滤波器的应用前景和研究意义,MATLAB软件简介应用以与本论文的篇章安排。
第二章为基础理论,主要介绍了与FIR和IIR数字滤波器设计密切相关的数字滤波技术基本概念和重要原理。
第三章为基于MATLAB的FIR滤波器设计,主要介绍了设计FIR数字滤波器时所应用的Fdatool工具,运用Fdatool工具选择要设计的方法和滤波器参数,然后计算并最后导出所设计滤波器的参数,最后进行了仿真。
第四章为基于MATLAB的IIR滤波器设计,主要进行IIR滤波器的设计和仿真工作。
第五章为结论,主要是对本文所完成FIR和IIR数字滤波器设计工作的一个总结,同时,也对后续工作进行了展望。
1.4本章小结
本章主要阐述了数字滤波技术的应用背景和研究意义,MATLAB的介绍,并对本论文各章节的容编排做了总体性的介绍。
第二章理论基础
2.1系统设计的理论依据
2.1.1数字滤波器概述
所谓数字滤波器[12],是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。
若其系统函数为H(Z),其脉冲响应为h(n),对输入时间序列为x(n),若输出时间序列为y(n),则它们在时域有如下关系:
(2-l)
在Z域有如下关系:
(2-2)
式中x(z)!
y(z)分别是x(n)、y(n)的z变换。
在频域有如下关系:
(2-3)
式中h(jw)是数字滤波器的频率特性;x(jw)、y(jw)分别是x(n)、y(n)的频谱,而w是数字角频率。
对于有限冲激响应数字滤波器(FIR)其输出y(n)只取决于有限个过去和现在的输入x(n),x(n一1)...x(n一m);对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,还跟过去的输出有关。
FRI和IIR滤波器不论是在性能还是在设计方法上都有着很大的区别,FIR滤波器可以根据给定的频率特性直接设计,而IIR滤波器则需要使用通用模拟滤波器设计方法进行设计,但是不管FRI和IIR,其设计步骤如下[13]:
(1)确定指标:
在设计一个滤波器前必须有一些指标,这些指标需要根据应用确定。
(2)模型逼近:
一旦确定了指标就可以利用一些基本原理和关系式提出一个滤波器模型来逼近给定的指标体系。
这是滤波器设计所要研究的主要问题。
(3)实现:
上面两步结果得到的滤波器通常是以差分方程系统函数或脉冲响应来描述的。
根据这个描述用硬件和计算机软件来实现。
对于许多应用来说,数字滤波器一般具有如下差分方程:
(2-4)
式中,x(n)为输入序列,y(n)为输出序列,ak和bk为滤波器系数,若bk=0,则
有:
(2-5)
式(2-5)就是FIR滤波器的差分方程,不失一般性,下面我们用
(2-6)
来表示FIR滤波器的差分方程,对式(2-6)进行Z变换,整理后可得到FIR滤波器的传递函数:
(2-7)
在数字滤波器中,FIR滤波器具有如下几个优点:
(1)可以在幅度特性随意设计的同时保证精确严格的线性相位;
(2)由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;
(3)由于FIR滤波器一般为非递归结构,因此在有限精度运算下,不会出现递归型结构中的极限震荡等不稳定现象,误差较小;
(4)FIR滤波器可采用FFT算法实现,从而提高运算效率。
设数字滤波器的传递函数H(ejw)用下式表示:
(2-8)
|H(ejw)|为幅频特性,θ(w)为相频特性。
幅频特性表示信号通过滤波器后频率成分的衰减情况,相频特性则反应各频率成分通过滤波器后在时间上的延时情况。
通常,选频滤波器的指标要求都以幅频特性给出,对相频特性不作要求,如果需要对输出波形有严格要求,如语音合成、波形传输等,则要求设计线性相位数字滤波器。
数字滤波器的参数指标与模拟滤波器类似,它们是wp,ws,助.Rs.其意义与模拟滤波器的参数意义一样,这里不再说明。
2.1.2FIR和IIR数字滤波器的比较
在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。
因此,指标的形式应为频域中的幅度和相位响应。
在通带中,通常希望具有线性相位响应。
在FIR滤波器中可以得到精确的线性相位。
在IIR滤波器带的相位是不可能得到的,因此主要考虑幅度指标。
IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。
此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器与D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。
从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆。
因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。
但是这个高效率是以相位的非线性为代价的。
选择性越好,则相位非线性越严重。
FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。
而FIR滤波器却可以得到严格的线性相位[14]。
从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆。
由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。
相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。
此外FIR滤波器可以采用快速傅立叶变换算法,在一样的阶数条件下运算速度可以快的多[15]。
从设计工具看,IIR滤波器可以借助模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供参考,计算工作量比较小,而且对计算工具的要求不高;FIR滤波器一般没有封闭形式的设计公式。
窗函数法设计FIR滤波器也仅给出了窗函数的计算公式,但是在计算通带阻带衰减时无显示表达式。
一般FIR滤波器的设计只有计算程序可循,因此它对计算工具要求较高[16]。
在设计和实现上FIR滤波器具有如下优越性:
(1)相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟。
(2)由于不存在稳定性问题,所以设计相对简单。
(3)只包含实数算法,不涉与复数算法,不需要递推运算,长度为M的滤波器(阶数为M-1),它的计算值约为M/2。