基于MATLAB的FIR和IIR滤波器设计
- 文件大小:909 (KB)
- 文档格式:.docx
文档分类: 机械及其自动化论文
关于本文
- 本文标题:基于MATLAB的FIR和IIR滤波器设计.docx
- 链接地址:https://wk.sbvv.cn/view/21560.html
- 内容摘要:基于MATLAB的FIR和IIR滤波器设计摘要在数字信号处理过程中需要对信号进行分析、变换、滤波、检测、调制、解调等等,在完成这些任务的时候,滤波器是非常基础的不能够缺少的知识。FIR滤波器最长的表达式名称是有限长单位冲激响应,因此也被专家叫为非递归型滤波器,也是数字信号处理最具有代表性最基础的内容。为了保证任意的幅频特性必须要具有严苛准确的相位特性,并且需要满足线性条件;IIR滤波器翻译为中文全称是无限长单位冲激响应,为了方便记忆又被命名为递归型滤波器[1]。随着MATLAB软件的发展,MATLAB有非常强大可观的功能,基本可以实现所需要的滤波器设计,在MATLAB环境下使用不同的设计方法编写程序,进行仿真然后设计出符合要求的FIR、IIR滤波器。本文主要介绍的内容就是关于利用窗函数设计FIR低通、带通以及多通带滤波器,利用频率抽样法去设计低通和高通滤波器;使用双线性法设计IIR带通滤波器和IIR低通滤波器的过程;总结了对于不同滤波器可以使用不同的合适的设计方法,以及MATLAB设计滤波器十分方便而且能够直观观察出图像。关键词FIR滤波器;IIR滤波器;MATLAB;仿真DesignandImplementationofFIRandIIRDigitalFilteBasedOnMATLABRuiqingShiSchoolofPhysicsandElectronicInformationHuaibeiNormalUniveityHuaibei235000AbstractWhenprocessingthedigitalsignalitisessentialtoanalyzeconvertfilteridentifyandmodulatedemodulateandsoon。Filterisanindispeablepartinthesetasks。ThelongestexpressionnameoftheFIRfilteristhefinitelengthunitimpulserespoesoitisalsocalledanonrecuivefilterbyexpertswhichisthemostbasicelementindigitalsignalprocessingsystem。Ithasstrictlinearphasefrequencycharacteristicsandcanguaranteeanyamplitudefrequencycharacteristics。IIRfilterisaninfinitelengthunitimpulserespoeanditisnamedtherecuivefilterforconvenienceofmemory。WiththedevelopmentofMATLABsoftwareMATLABhasaverypowerfulandcoiderablefunctionwhichcanbasicallyachievethefilterdesignrequired。InMatlabenvironmentdifferentdesignmethodsareusedtowriteprogramscarryoutsimulationanddesignfirandIIRfiltethatmeettherequirements。ThispapermainlyintroducestheprocessofdesigningFIRlowpassbandpassandmultipassfiltebyusingwindowfunctiondesigninglowpassandhighpassfiltebyusingfrequencysamplingmethoddesigningIIRbandpassandIIRlowpassfiltebyusingbilinearmethodsummarizingdifferentsuitabledesignmethodsfordifferentfilteandtheconvenienceofdesigningfiltebyMATLABAndcanobservetheimagedirectly。KeywordsFIRdigitalfilter;IIRdigitalfilter;MATLAB;Simulation目录1引言11。1课题研究的背景和意义11。2MATLAB语言概述11。3MATLAB的主要功能22FIR数字滤波器32。1主要特点32。2实现原理32。3实现线性相位的条件43FIR滤波器的构造方法53。1加窗法53。2频率特性采样法73。3软件设计FIR滤波器84IIR滤波器194。1IIR滤波器的基本原理194。2IIR滤波器的设计方法204。3软件设计IIR滤波器21结论24参考文献25附录26致谢301引言1。1课题研究的背景和意义目前,在发展如此迅速的信息电子科技时代来看图像识别的技术产业发展也在突飞猛进,这些绝大部分的科学研究和技术开发正在各个国家继续努力进行作为用于计算机和电子图像学的处理。随着信号准确度正在不断的提高,数字滤已经变成了一个非常热门的话题。因为信号滤波器本身具有快速解决各种复杂信号问题的基本优点,同时还有提高信号过滤的准确度的一个重要的特性,并且信号稳定度和灵活性也非常的强。FIR滤波器具有比较严格的一个特征是它是线性的,并且是可以随意的改变它的幅度特性,能够很容易的实现各种特性,因此常被用在现代通信技术当中,并且MATLAB的FIR滤波器的研究也是非常具有现实意义的。IIR频带具有非常精确的标准频带数量特性和FIR滤波器不同的地方,首先它没有比较严格并且复杂的线性相位其次幅频特性相比也低适用于不敏感线性相位的高频信号。使用在MATLAB中的信号过滤器附件设计、信号分析处理工具等就可以很容易地帮助制定一种符合各种设计要求的频带数量指标的各种IIR滤波器。1。2MATLAB语言概述MATLAB语言是一种实用功能性很强的高科技电子计算编程语言和软件内容计算机软件设计的基础非常丰富,它的矩阵公式运算以及数字信号逻辑处理是采用集中模式计算,并且MATLAB软件计算语言使用起来也很简单,同时,库函数也是内容也是比较多的,使用起来非常的方便;程序人员书可以自由编写代码,为了避免麻烦的程序可以利用丰富的库函数来进行编程,所以库函数可靠性高的原因是在于它都是由一些编程领域行业专家所编写的。在MATLAB用语中维数是不需要被数组定义的,而且数组运算和矩阵使用的效率很高,并且能够提供各种我们所需要的特定函数类型,所以它在处理信号、信息传输、通信系统设计等等方面普遍应用,比其他常用的语言具有更广泛的范围[1]。我们一般用以下几个部分构成我们所需要的MATLAB的系统:特有的语言;(2)使用时的工作界面;(3)能够快速构图的系统;(4)软件中所自带的丰富的函数类型;(5)对应的用于接入应用程序的端口;1。3MATLAB的主要功能(1)可以高效且较为准确的算出算数式以及难解的函数式(2)可以提高各种函数式的图像并对图像进行所需的处理(3)软件本身的语言较简单易上手,且应用的范围广泛2FIR数字滤波器2。1主要特点对于它的傅里叶变换对应的h(n)长度一定,即在特定的范围内不为0。在z轴的右半部分,其对应的是收敛的系统函数。它的结果是没有双向反馈的,我们又称其结构为非递归结构。设FIR滤波器其中的冲激响应函数h(n)为n点的函数序列,0≤n≤N1,则此滤波器的系统函数就为。它具有的零点个数是(N1),这个个数是为了维持系统的稳定性,在z=0点会发生抵消的极点个数为(N1)。2。2实现原理我们由定义的,若输入序列是单位脉冲序列,我们可以将FIR滤波器系统的响应表示为。1。1节说到FIR滤波器是没有任何的反馈回路,可以认为它的系统是无条件稳定的,这是一个最主要特点。在实际操作中,FIR滤波器的单位脉冲是有有限的响应长度的,并且有一定的长度限制。我们由定义式可以知道要求响应序列,我们需要先用激励乘以系统,之后再进行求和[1]。该滤波器的工作说明图如图1所示。图1FIR滤波器工作说明图2。3实现线性相位的条件或式1如表1所示,我们根据输入序列的对称奇偶性和以及采样点数N的奇偶性,我们得到了下面FIR滤波器的4种类型。表14类FIR滤波器3FIR滤波器的构造方法3。1加窗法如何设计窗函数先根据规定指标设计滤波器,响应阶数N和窗函数都要符合滤波器的各项标准。对于无限长的响应序列,我们如何得到有限且包含了主要信息的序列,是我们所研究的重点,为此我们需要对无限长序列加上我们事先所设计好的窗户。使用窗函数法设计的两个前提条件:一是有较窄的窗谱主瓣,为了可以最大程度的将有效内容包含到。二是需要尽可能的去减少得到的频谱中其他旁瓣的高度(目的是能够让阻带的衰减增加)。窗函数种类就类似于家中安装的窗户一样,我们加的窗函数的类型也有很多种。如表2所示,是常用窗函数的表达式以及对应的MATLAB语句,我们将相应的程序在MATLAB中编写好,点击运行,打开图形观察窗口我们便可以看到我们表上的各种窗函数的图形,对于各种窗的频带宽度我们点击MATLAB的图形,打开Plot界面,我们便可以查看到。如表3所示,是各种窗函数的性能比较,我们可以根据我们所需的性能对各类的窗进行简单的测试,我们对其实现的有效程度,获取的有效内容的多少等等进行相互比较,去决定哪种窗函数才最适合我们相应的设计。表2常用窗函数定义表3各种窗函数的性能比较窗函数与主瓣相比较第一旁瓣衰减dB主瓣宽度阻带最小衰减dB近似值精确值矩形窗1321汉宁窗3144汉明窗4153布莱克曼窗5774凯塞窗可调可调可调可调(3)如何实现FIR滤波器具体实现方法如下[2]:①确定我们所需要的滤波器各项参数:包括边界频率,最大的通带以及阻带衰减,过渡带宽等等信息。②根据所设计的要求写出理想型滤波器的单位冲激响应hd(n),那么可以得到理想滤波器的截止频率为ωd=(ωp+ωs)2[3]。③根据公式计算出最小的衰减,并由上表去挑选所需的窗函数类型,再算出对于的截短长度也就是所谓的窗的长度,从而写出窗函数表达式w(n)[3]。④求出在加窗以后的实际冲激响应:3。2频率特性采样法从物理角度来看,频率特性采样法可以实现对赋予了频域的理想滤波器的取值H(k)[4],对理想滤波器的频响取相同间隔频率的N点,也就是,并以作为真正被FIR滤波器应用的频率特采样的取值H(k)[4]。即令:式21我们通过DFT的知识学习,知道我们可以采样N个等间隔频域数值来确定出FIR的单位脉冲响应h(n),即:式22我们需要在滤波器系统设计中,给出需要的在几种理想频率滤波器的基本特性,也离不开基于公式的详细的分析。我们使用内插公式去无限逼近理想状态下的频响,具体为:,是内插函数式23式24两个式化简可得到:式253。3具体的软件实现(1)MATLAB简介MATLAB是一个以各种矩阵计算和科技价值显示为主要内容的交互式系统。在计算技术和科学领域中,实际的问题和复杂或简单的数学建模问题都是可以用MATLAB矩阵计算来解决的。一些常见的数值上的计算、验证某些算法与设计,还有一些特殊的矩阵计算应用都能够来解决。由于需要分析和设计数字信号处理系统,MATLAB软件从开始出现并被频繁使用,成为高校老师以及学生普遍使用的工具,也是通信及信号处理等专业必须学习的一门课程。(2)加窗法实现结果(相关程序见附录)①使用汉明窗设计低通滤波器。设计所得的低通滤波器的增益响应如下图2所示:图2增益响应观察图和程序,我们可以从中算出我们所需的相应的数据。开始设计前,我们以0。1π作为我们的通带截止频率,阻带截止频率为0。17π,最终很好的实现在图形中。在此期间,显而易见的是:我们输入的信号是由两个不同频率的滤波器的正弦信号相互重叠所形成的,我们将频率属于该通带内的信号保留了下来,也就是图中较低的100Hz的波形,而对较高频率的波形进行了滤除,如图3和图4所示结果,这一结果这也是我们所希望的。我们通过对波形前后对比分析,我们就可以知道设计是否实现了我们所需要的功能。图3滤波前的图像图4滤波后的图像②使用Kaiser窗设计带通滤波器。设计所得的带通滤波器的增益响应如图5所示:图5增益响应我们观察图和程序,可以从中算出我们所需的相应的数据。本设计的开始我们所要求的通带频率为0。325π~0。5525π,阻带频率为0。25π~0。6025π;最终很好的实现在图形中。图6和图7就是使用该带通滤波器进行对特定的波形进行处理,所得的滤波前后的时域以及频域的波形,从图中我们看出由四个不同信号频率的正弦信号分量重叠相加得到的就是输入的信号频域,很明显带通也就是通带里面的可以通过,外面的一切均过滤掉,这个也就是最终得到的滤波器所实现的效果,图中体现的也是如此,将不属于通带范围内的信号进行了过滤,使其不再出现在相应的图中。图6滤波前的图图7滤波后的图③使用Kaiser窗设计多通带滤波器8设计所得的多通带滤波器的增益响应如图8所示:图8增益响应本设计的开始我们所要求的通带频率为0。2π、0。4π、0。7π、0。8π,阻带频率为0。1π、0。5π、0。6π、0。9π,最终我们通过图像观察发现均实现了上面所提及的要求。图9和图10就是滤波前后的时域以及频域的波形六个不同频率且重叠相加的正弦信号就是输入信号,我们所涉及的频率有四个值,对应成三段可以允许信号通过的通带,然后我们将输入信号通过所设计的滤波器,我们在六个正弦信号分理出了通过的三个信号。通过观察,我们也可以清楚的在图像得到实现的结果。所以表明该滤波器的设计完成了我们的功能,达到了我们的要求,取得了预期的效果。图9滤波前的图像图10滤波后的图像(3)频率抽样法实现结果(相关程序见附录)①低通滤波器设计所得的低通滤波器的增益响应如图11所示:图11增益响应图12滤波前的图像图13滤波后的图像分析的步骤如前面所述的方法一样,我们通过观察图和程序,算出数据值。在这个过程中,我们也可以看到输入信号的构成,是因为三个不一样频率的正弦信号互相叠加。滤波前后所对应的时域以及频域的波形见图12和图13,低通滤波器使得频率较低的二个分量留了下来,如图中的频率为100Hz和300Hz的二个波形,而频率处于其他频率上信息都被滤波器进行的滤除,如图中频率为600Hz的波形并没有出现在输出信号中,这也是我们所希望的。就是这样对波形前后进行对比,我们就可以知道设计实现的功能,以便于我们更好地去改进设计,提高准确性。②高通滤波器图14为设计所得的高通滤波器的增益响应。图14增益响应图15滤波前的图像图16滤波后的图像滤波前后随对应的时域以及频域的波形见图15和图16。分析的步骤如前面所述的方法一样,我们通过观察图和程序,算出数据值。在这个过程中,我们也可以看到输入信号的构成,是因为三个不一样频率的正弦信号互相叠加。高通滤波器与低通相反,使得频率较高的二个分量留了下来,如图中的频率为700Hz和800Hz的二个波形,而频率处于其他频率上信息都被滤波器进行的滤除,如图中频率为200Hz的波形。4IIR滤波器4。1IIR滤波器的基本原理主要特点:IIR滤波器的傅里叶变化就是对应的系统函数(2)和FIR滤波器不同的是,IIR滤波器的结构是反馈环路递归型。(3)设计模拟滤波器的思路是能够对其产生效果的(4)整个系统不能很好的可以控制相位,对整个相位网络校准特性要求相对较高时需加一个相位校准传感器作为校准器以控制相位网络。实现原理:与FIR滤波器相反,IIR滤波器对于它的傅里叶变换对应的h(n)在范围内不为0,即长度是无限的。同时,它也被称之为递归滤波器是因为其对应的系统框图可以是递归模型[7]。IIR滤波器输入是有限个项,以前输出的一些有限项的内容都会被重新输入,再重新计算,反馈就是这样一个意思。我们一般用差分方程定义IIR滤波器,这个方程可以来表示为:,式41此式中:我们一般用x(n)表输入、y(n)表输出,均为固定的系数。我们可以毫不费力地计算出系统传递函数:输出除以输入,如下所示:式42在这个方程式中,极点数也就是IIR滤波器的阶数有N来表示;M则用来表示相应的零点数。IIR滤波器的设计方式有很多种,其中用的最多的是先将比较容易实现的模拟滤波器设计出来,然后将其转化成数字滤波器。这种方式是目前发展的比较完善的设计方式,有大量的设计公式和资料图标供用户查询,所以利用这些资源可以节省大量的时间并且实现更多的可能性。我们先来分析对应z变换所得到的系统函数H(z),它必须是在现实中可以实现的,满足因果关系,否则我们整体的设计是没有意义的。因为我们给定的要求都是在频域下的指标,所以我们令来分析在z变换对应的频率响应。如果其对应的频响满足设计的需要,我们也就研究成功了,否则我们需要回到z变换对系统进行改进来达到我们所需要的参数要求。4。2IIR滤波器的设计方法IIR数字滤波器的设计方法有两种,一是通过模拟进行转换,转换成数字滤波器也离不开冲激响应不变法或双线性变换法,而且其参数也是一一对应的;二是用辅助工具计算机直接在频域或时域中进行。由于MATLAB软件特别是其不断完善的工作箱,我们可以将数字滤波器在计算机中进行设计,使得整体的利用率最高[8]。设计IIR数字滤波器的大致流程为:滤波器的性能指标是我们一开始设计前就确定好的了,所以我们根据指标确定好所设计的模拟滤波器的各项数值;(2)因为是先设计模拟的=滤波器,所以我们如果要得到的数字滤波器的指标,需要进行转换。这个转换关系是通过双线性变换法得到的::[8]。(3)通过模拟滤波器的设计方法得到Ha(s),即模拟滤波器的传输函数,也是对应的拉普拉斯变换对;比较常见的有切比雪夫滤波器、巴特沃斯滤波器、贝塞尔滤波器、椭圆滤波器等等模拟滤波器,它们都可以被借助使用因为其整体的设计较为严格,所以我们可以提前运用可用的曲线和图表来帮助我们更好地设计[9]。(4)完成模拟到数字的转换,我们需要使用双线性变换将模拟滤波器对应的拉普拉斯变换转换成数字滤波器对应的Z变换。(5)相应的系统函数H(z)的精度必须要达到一定的要求(包括运算结构的选择、字长是否合适、数字处理方法要有效)(6)用软件结合硬件的方法去提高性能。这种技术包括采用:通用的计算机信号处理软件、数字滤波器与通用的硬件或者软硬件技术相结合。4。3软件设计IIR数字滤波器模拟滤波器被转化为数字滤波器的双线性变化法基本原理是:确定时域连续的模拟信号激励与响应之间的微分方程,得到所需要的系统函数H(jw),再找到一个差分方程能够表达数字滤波器传递函数H(s),最后上述微分方程的近似解就是该差分方程[10]。下面我将简单介绍用上面所提到的双线性变换法设计一个IIR带通滤波器以及低通滤波器(程序见附录),以便于我们更好的去熟悉软件工作环境以及IIR滤波器通过软件设计的方法步骤。(1)带通滤波器IIR带通滤波器的各项指标参考为:0。5π作为我们的通带中心频率,0。4π,0。6π作为我们的通带截止频率图17为IIR的幅频特性图17幅频特性低通滤波器图18IIR低通幅频相频特性曲线图19原信号和经过IIR低通滤波器的信号频谱特性对比图20原信号和经过IIR低通滤波器的时域特性图像对比如图18所示是所设计的IIR滤波器幅频相频特性曲线,图19和图20是信号经过后的频谱特性图像和时域特性图像。由上图可见,所设计的IIR低通滤波器的通带范围是0~500Hz之内的信号幅值被保留,而其余信号幅值被衰减,时域图也有了一定的优化。结论论文正文主要介绍了MATLAB软件的一些知识,还有滤波器的原理以及FIR和IIR滤波器的需要基于MATLAB软件实现多种技术设计。语言凝练简单,方便使用,加上拥有内容充实的库函数也是MATLAB的一大特色。MATLAB程序书写起来形式非常的随意,子程序编程的任务也不会特别的困难。在对数字信号的处理中,由于数字信号中经常混有各种复杂的成分,所以只直接进行数字信号的分析,都必须要通过滤波器来进行的,由此可见滤波器在数字分析中的作用和地位可见一斑。这篇文中重点详细介绍了是如何设计限冲激响应数字滤波器和无线冲激响应滤波器的,分别是FIR和IIR数字滤波器。这两种中滤波器在近几年是非常普遍的。有三种方法可以被用来优化FIR数字滤波器,分别是窗函数发、频率抽样法和优化设计法。本文主要介绍了前两种方法。FIR滤波器的很多种技术设计都涉及广泛,并且每一种方法都有各自的优缺点,不同的方法都被不同的滤波器类型所选择。窗函数法主要是用来设计标准滤波器的,比如说低通和高通等;另外频率抽样法的主要优点之一是滤波器可以在频域直接进行设计并且非常适合于最优化的设计;增加抽样点数M虽然会让计算量加大,但却能够实现自由选择频率[11]。本文也介绍了运用双线性变换法设计IIR滤波器的设计,设计出了符合要求的低通和带通滤波器。对于窗函数设计FIR滤波器,根据要得出怎样的结果确定好参数指标,然后编写代码,不断修改仿真,最后基于MATLAB环境下进行滤波器的设计简便易行,得到需要的特性图。IIR滤波器在有了FIR滤波器设计的经验,双线性不变法确定好指标、代码运行就能够完成最后所需要的设计。参考文献冯冠超。FIR数字滤波器设计及MATLAB实现[J]。信息系统工程2010(06):29。李洋洋江亮亮。基于MATLAB的FIR数字滤波器的设计与实现[J]。黑龙江科技信息2008(27):67+89。通信原理虚拟实验平台的设计与实现赵越《北京邮电大学硕。。。
- 版权声明:知知范文网 本站所有内容的版权归相应内容作者或权利人所有,本站不对涉及的版权问题负法律责任。
- 内容来源:本站所有内容均有网络公开等合法途径整理而来,该资料仅作为交流学习使用,并无任何商业目的,任何访问,浏览本站,购买或者未购买的人,就代表已阅读,理解本条声明
- 免责声明:内容所标价格,是对本站搜集、整理资料以及本站运营必须费用支付的适当补偿,资料索取者尊重版权方的知识产权,谢谢!