基于matlab的数字滤波器的方案设计书Word格式.docx
《基于matlab的数字滤波器的方案设计书Word格式.docx》由会员分享,可在线阅读,更多相关《基于matlab的数字滤波器的方案设计书Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
1数字滤波器的概述5
1.1数字滤波器的基本结构5
1.1.1IIR滤波器的基本结构5
1.1.2FIR滤波器的基本结构6
1.2数字滤波器的设计原理6
1.2.1滤波器的性能指标7
1.2.2IIR数字滤波器的设计方法7
1.2.3FIR数字滤波器的设计方法8
2.MATLAB中数字滤波器的设计10
2.1IIR数字滤波器设计11
2.1.1.IIR滤波器阶数的选择11
2.1.2.IIR滤波器的设计11
2.2FIR数字滤波器设计13
2.2.1常用窗函数13
2.2.2窗函数法设计FIR数字滤波器14
3.基于MATLABGUI的数字滤波器设计思路及实现15
3.1GUI界面设计概述15
3.2“滤波器设计软件”设计所实现任务16
3.3基于MATLABGUI的数字滤波器设计实现17
3.3.1“滤波器设计软件”GUI界面设计17
3.3.1“滤波器设计软件”回调函数编写17
3.3.2AutoChoose.m程序的编写21
3.4运行结果及显示25
5.设计总结和心得25
参考文献26
基于MATLAB的数字滤波器的设计
摘要:
数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测与参数估计等处理,在通信、图像、语音等许多领域有着十分广泛的应用,尤其在图像处理、数据压缩等方面取得了令人瞩目的进展与成就。
鉴于此,数字滤波器的设计想得尤为重要。
目前数字滤波器有很多现成的高级语言设计程序,但它们都存在设计效率较低,不具有可是图形,不便于修改参数等缺点,而MATLAB的应用为数字滤波器的设计与研究一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算,可视化,程序设计融合到了一个交互式的工作环境中。
尤其是MATLAB的GUI图形用户编程。
关键词:
MATLAB、GUI、高级语言、交互式
DesignofMATLAB-baseddigitalfilter
Abstract:
Digitalfilterisbasedondigitalsignalprocessing,usedtofilteranddetectsignal,andestimateparameter.Ithasaverywiderangeofapplicationsincommunications,image,voiceandmanyotherfields,andespeciallyinprocessingimage,compressiondataandachievedremarkableprogress.Inviewofthis,thedigitalfilterdesigntobeparticularlyimportant.
Currentlytherearemanyready-madedigitalfilterdesignprocesshigh-levellanguage,buttheyareadesignoflessefficient,anddonothavethegraphics,evennoteasytomodifyparameterssuchshortcomings,andtheapplicationofMATLABfordigitalfilterdesignandresearchwithanintuitive,efficientandconvenienttool.Itisbasedmatrixoperations,thecomputation,visualization,programmingintegratedintoaninteractiveworkenvironment.Inparticular,theGUIisthegraphicaluserMATLABprogramming.
Keywords:
MATLAB,GUI,high-levellanguage,interactive
1数字滤波器的概述
数字滤波器可以用差分方程、单位取样相应以及系统函数等表示,对于研究系统的实现方法,及它的运算结构来说,用狂徒便是最为直接。
一个给定的输入输出关系,可以用多种不同的数字网络来实现。
在不考虑量化影响是,这些不同的实现方法是等效的;
但在考虑量化影响时,这些不同的实现方法性能上就有差异。
因此,运算结构是很重要的,同一系统函数H(Z),运算结构的不同,将会影响系统的精度、误差、稳定性、经济型以及运算速度等许多重要性能。
IIR(无限冲击响应)滤波器与FIR(有限冲击响应)滤波器在结构上有自己不同的特点,在设计时需综合考虑。
1.1数字滤波器的基本结构
作为线形时不变的数字滤波器可以用系统函数来实现,而实现一个系统函数表达式所表示的系统可以用两种方法:
一种方法是采用计算机软件实现;
另一种方法是用加法器、乘法器、和延迟器等元件设计出专用的数字硬件系统,即硬件实现。
不论软件实现还是硬件实现,在滤波器设计的过程中,由同一系统函数可以构成很多不同的运算结构,对于无限精度的系数和变量,不同结构可能是等效的,与其输入和输出特性无关。
1.1.1IIR滤波器的基本结构
一个数字滤波器可以用系统函数表示为:
(2-1)
由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:
(2-2)
可见数字滤波器的功能就是把输入序列x(n)通过一定的运算变换成输出序列y(n)。
不同的运算处理方法决定了滤波器实现结构的不同。
无限冲激响应滤波器的单位抽样响应h(n)是无限长的,其差分方程如(2-2)式所示,是递归式的,即结构上存在着输出信号到输入信号的反馈,其系统函数具有(2-1)式的形式,因此在z平面的有限区间(0<
|z|<
∞)有极点存在。
前面已经说明,对于一个给定的线形时不变系统的系统函数,有着各种不同的等效差分方程或网络结构。
由于乘法是一种耗时运算,而每个延迟单元都要有一个存储寄存器,因此采用最少常熟乘法器和最少延迟支路的网络结构是通常的选择,以便提高运算速度和减少存储器。
然而,当需要考虑有限寄存器长度的影响时,往往也采用并非最少乘法器和延迟单元的结构。
IIR滤波器实现的基本结构有:
(1)IIR滤波器的直接型结构:
优点:
延迟线减少一半,变为N个,可节省寄存器或存储单元;
缺点:
其它缺点同直接I型。
通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合的低阶系统(一、二阶)来实现。
(2)IIR滤波器的级联型结构;
特点:
●系统实现简单,只需一个二阶节系统通过改变输入系数即可完成;
●极点位置可单独调整;
●运算速度快(可并行进行);
●各二阶网络的误差互不影响,总的误差小,对字长要求低。
不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的传输零点时,级联型最合适。
(3)IIR滤波器的并联型结构。
●简化实现,用一个二阶节,通过变换系数就可实现整个系统;
●极、零点可单独控制、调整,调整α1i、α2i只单独调整了第i对零点,调整β1i、β2i则单独调整了第i对极点对极点;
●各二阶节零、极点的搭配可互换位置,优化组合以减小运算误差;
●可流水线操作。
二阶阶电平难控制,电平大易导致溢出电平小则使信噪比减小。
1.1.2FIR滤波器的基本结构
FIR滤波器【7】的单位抽样响应为有限长度一般采用非递归形式实现。
通常的FIR数的单位抽样响应为有限长度,数字滤波器有横截性和级联型两种。
FIR滤波器实现的基本结构有:
(1)FIR滤波器的横截型结构
表示系统输入输出关系的差分方程可写作:
(2)FIR滤波器的级联型结构
将H(z)分解成实系数二阶因子的乘积形式分解成实系数二阶因子的乘积形式:
这时FIR滤波器可用二阶节的级联结构来实现,每个二阶节用横截型结构实现,如图所示:
FIR滤波器的级联结构
这种结构的每一节控制一对零点,因而在需要控制传输零点时可以采用这种结构。
1.2数字滤波器的设计原理
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR滤波器的特征是,具有无限持续时间冲激响应。
这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。
FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。
数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。
随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
数字滤波器设计的基本步骤如下:
(1)确定指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度和相位响应。
幅度指标主要以两种方式给出。
第一种是绝对指标。
它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。
第二种指标是相对指标。
它以分贝值的形式给出要求。
在工程实际中,这种指标最受欢迎。
对于相位响应指标形式,通常希望系统在通频带中具有线性相位。
运用线性相位响应指标进行滤波器设计具有如下优点:
①只包含实数算法,不涉及复数运算;
②不存在延迟失真,只有固定数量的延迟;
③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。
因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。
(2)逼近
确定了技术指标后,就可以建立一个目标的数字滤波器模型。
通常采用理想的数字滤波器模型。
之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。
(3)性能分析和计算机仿真
上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。
根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;
或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
1.2.1滤波器的性能指标
我们在进行滤波器设计时,需要确定其性能指标。
一般来说,滤波器的性能要求往往以频率响应的幅度特性的允许误差来表征。
以低通滤波器特性为例,频率响应有通带、过渡带及阻带三个范围。
在通带内:
在阻带中:
其中ωc为通带截止频率st为阻带截止频率,Ap为通带为通带截止频率,ω误差,Ast为阻带误差。
与模拟滤波器类似,数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型,由于数字滤波器的频率响应是周期性的,周期为2π。
1.2.2IIR数字滤波器的设计方法
目前,IIR数字滤波器设计最通用的方法是借助于模拟滤波器的设计方法。
模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便,IIR数字滤波器的设计步骤是:
(1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;
(2)根据转换后的技术指标设计模拟低通滤波器H(s);
(3)在按一定规则将H(s)转换为H(z)。
若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:
(4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤
(2)设计出模拟低通滤波器H(s),再由冲击响应不变法或双线性变换将H(s)转换为所需的H(z)。
s-z映射的方法有:
冲激响应不变法、阶跃响应不变法、双线性变换法等。
下面讨论双线性变换法。
双线性变换法[8]是指首先把s平面压缩变换到某一中介平面s1的一条横带(宽度为2πT,即从-πT到πT),然后再利用z=exp(s1T)的关系把s1平面上的这条横带变换到整个z平面。
这样s平面与z平面是一一对应关系,消除了多值变换性,也就消除了频谱混叠现象。
s平面到z平面的变换可采用Ω=tan(Ω1T/2)(2-5)
令jΩ=s,jΩ1=s1有:
从s平面到z平面的变换可采用z=exp(s1T)(2-8)
代入上式,得到:
一般来说,为使模拟滤波器的某一频率与数字滤波器的任一频率有对应关系,可引入代定常数c,
则
这种s平面与z平面间的单值映射关系就是双线性变换。
有了双线性变换,模拟滤平面间的单值映射关系就是双线性变换。
有了双线性变换波器的数字化只须用进行置换进行置换。
1.2.3FIR数字滤波器的设计方法
IIR滤波器[7]的优点是可利用模拟滤波器设计的结果,缺点是相位是非线性的,若需要用全通网络进行校正。
FIR滤波器的优点是可方便地实现线性相位。
FIR滤波器单位冲激响应h(n)的特点:
其单位冲激响应h(n)是有限长,系统函数为:
在有限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处,则滤波器具有准确的线性相位。
窗函数设计法:
一般是先给定所要求的理想滤波器频率响应Hd(ejω),由Hd(ejω)导出hd(n)是无限长的非因果序列,而我们要设计的是hd(n)是有限长而我们要设计的是的FIR滤波器,所以要用有限长序列hd(n)来逼近无限长序列hd(n),设:
常用的方法是用有限长度的窗函数w(n)来截取即:
这里窗函数就是矩形序列RN(n),加窗以后对理想低通滤波器的频率响应将产生什么样的影响呢?
根据在时域是相乘关系:
通过频域卷积过程看矩形的频率响应产生以下几点影响:
(1)使理想频率特性不连续点处边沿加宽,形成一个过渡带,其宽度等于窗的频率响应的主瓣宽度。
(2)在截止频率的两边的地方即过渡带的两边,出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少,则取决于旁瓣的多少。
(3)改变N,只能改变窗谱的主瓣宽度,改变ω的坐标比例以及改变的绝对值大小,但不能改变主瓣与旁瓣的相对比例(此比例由窗函数的形状决定)。
(4)对窗函数的要求
a、窗谱主瓣尽可能窄,以获取较陡的过渡带;
b、尽量减小窗谱的最大旁瓣的相对幅度;
即能量集中于主瓣,使肩峰和波纹减小使肩峰和波纹减小,增大阻带的衰减。
频率采样法:
窗函数设计法是从时域出发,把理想的hd(n)用一定形状的窗函数截取成有限长的h(n),这样得到的频率响应逼近于所要求的理想的频率响应。
频率抽样法则是从频域出发,把给定的理想频率响应频率抽样法则是从频域出发,然后以此2πkN加以等间隔抽样得到作为实际FIR滤波器的频率特性的抽样值H(k),即
知道H(k)后,由DFT定义可唯一确定有限长序列h(n),利用这N个频域抽样值H(k)同样利用频率内插公式可得FIR滤波器的系统函数H(z),及频率响应
频率抽样法内插公式:
1.3IIR滤波器与FIR滤波器的分析
前面已经介绍了IIR和FIR数字滤波器的设计方法,选择哪一种滤波器取决于每种类型滤波器的优点在设计中的重要性。
为了能在实际工作中恰当地选用合适的滤波器,现将两种滤波器特点比较分析[]如下如下:
(1)选择数字滤波器是必须考虑经济问题,通常将硬件的复杂性、芯片的面积或计算速度等作为衡量经济问题的因素。
在相同的技术指标要求下,由于IIR数字滤波器存在输出对输入的反馈,因此可以用较少的阶数来满足要求,所用的存储单元少,运算次数少,较为经济。
例如,用频率抽样法设计一个阻带衰减为20dB的FIR数字滤波器用频率抽样法设计一个阻带衰减为数字滤波器,要33阶才能达到要求,而用双线性变换法只需4~5阶的切比雪夫IIR滤波器就可达到同样的技术指标。
这就是说FIR滤波器的阶数要高5~10倍左右。
(2)在很多情况下,FIR数字滤波器的线性相位与它的高阶数带来的额外成本相比是非常值得的。
对于IIR滤波器,选择性越好,其相位的非线性越严重。
如果要使IIR滤波器获得线性相位,又满足幅度滤波器的技术要求,必须加全通网络进行相位校正,这同样将大大增加滤波器的阶数。
就这一点来看,FIR滤波器优于IIR滤波器。
(3)FIR滤波器主要采用非递归结构,因而无论是理论上还是实际的有限精度运算中滤波器主要采用非递归结构,它都是稳定的,有限精度运算误差也较小。
IIR滤波器必须采用递归结构,极点必须在z平面单位圆内才能稳定。
对于这种结构运算中的舍入处理有时会引起寄生振荡。
(4)对于FIR滤波器,由于冲激响应是有限长的,因此可以用快速傅里叶变换算法因此可以用快速傅里叶变换算法,这样运算速度可以快得多。
IIR滤波器不能进行这样的运算。
(5)从设计上看,IIR滤波器可以利用模拟滤波器设计的现成的闭合公式、数据和表格,可以用完整的设计公式来设计各种选频滤波器。
一旦选定了已知的一种逼近方法(巴特奥兹,切比雪夫等),就可以直接把技术指标带入一组设计方程计算出滤波器的阶次和系统函数的系数(或极点和零点或极点和零点)。
FIR滤波器则一般没有现成的设计公式。
窗函数法只给出了窗函数的计算公式,但计算通带和阻带衰减仍无显式表达式。
一般FIR滤波器设计仅有计算机程序可资利用,因而要借助于计算机。
(6)IIR滤波器主要是设计规格化、频率特性为分段常数的标准低通、高通、带通和带阻滤波器。
FIR滤波器则灵活很多,例如频率抽样法可适应各种幅度特性和相位特性的要求。
因此FIR滤波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适应性很广。
而且,目前已经有很多FIR滤波器的计算机程序可供使用。
FIR滤波器
IIR滤波器
设计方法
一般无解析的设计公式,要借
助计算机程序完成
利用AF的成果,可简单、有效地完成设计
设计结果
可得到幅频特性(可以多带)和
线性相位(最大优点)
只能得到幅频特性,想频特性未知,
如果是线性相位,须用全通网络校准,但增加滤波器的阶数与复杂性
稳定性
极点全部在原点(永远稳定)无稳定性特点
有稳定性特点
阶数
高
低
结构
非递归系统
递归系统
运算误差
一般无反馈
有反馈,由于运算中的四舍五入会产生极限环
2.MATLAB中数字滤波器的设计
数字滤波器在对信号的过滤、检测与参数估计等处理过程中,是使用最为广泛的一种线性系统。
常用的数字滤波器分为IIR数字滤波器和FIR数字滤波器两种,在MATLAB中有许多用于滤波器设计的函数。
下面就来一一介绍一下。
2.1IIR数字滤波器设计
在MATLAB中,设计IIR数字滤波器的方法可以归纳为两类:
一类是先设计出相应的模拟滤波器,在转换成数字滤波器:
另一类是直接调用有关函数设计符合要求的数字滤波器的接数。
2.1.1.IIR滤波器阶数的选择
在设计IIR数字滤波器时,首先应该确定滤波器的阶数。
在MATLAB中,常常用下列函数估计滤波器的阶数。
Ø
函数buttord,该函数用于Butterworth滤波器阶的选择。
常用格式为
[n,Wn]=buttord(Wp,Ws,Rp,Rs)
[n,Wn]=buttord(Wp,Ws,Rp,Rs,’s’)
该函数可在给定滤波器性能的情况下,选择模拟或数字Butterworth滤波器最小阶。
其中,Wp与Ws分别是通带和阻带的截止频率,Rp和Rs分别是通带和阻带区的波纹系数。
格式[n,Wn]=buttord(Wp,Ws,Rp,Rs)可得到Butterworth数字滤波器的最小阶n,并使在通带(0,Wp)内波纹系数小于Rp,在阻带(Ws,1)内衰减系数大于Rs。
函数还可得到3dB截止频率Wn,这样利用butter函数可产生满足指定性能的滤波器。
利用buttord函数,还可以得到高通、带通和带阻滤波器的阶。
当Wp》Ws是,这时为高通滤波器;
当Wp,Ws为二元矢量时,若Wp(Ws,则为带通或带阻滤波器,这是Wn也为二元矢量。
格式[n,Wn]=buttord(Wp,Ws,Rp,Rs,’s’)可得满足指定性能的模拟Butterworth滤波器的阶n和3dB截止频率Wn,从而可利用butter函数设计模拟滤波器。
函数cheblord,该函数用于ChebyshevⅠ型滤波器阶的选择。
[n,Wn]=cheblord(Wp,Ws,Rp,Rs)
[n,Wn]=cheblord(Wp,Ws,Rp,Rs,’s’)
该函数在给定滤波器性能的情况下,选择ChebyshevⅠ型滤波器的最小阶,其中Wp和Ws分别为滤波器通带和阻带的截止频率,Rp和Rs分别为通带和阻带区的波纹系数。
格式[n,Wn]=cheblord(Wp,Ws,Rp,Rs)可得到数字ChebyshevⅠ型滤波器的最小阶,并使其在通带(0,Wp)内波纹系数小于Rp,在阻带(Ws,1)内衰减系数大于Rs,函数cheblord还可得到滤波器的3dB截止频率Wn,这样利用cheby1函数可得到满足指定性能的滤波器。
同样Cheblord函数还可以得到高通、带通和带阻滤波器的阶。
利用格式[n,Wn]=cheblord(Wp,Ws,Rp,Rs,’s’)可得到满足指定性能的模拟ChebyshevⅠ型滤波器的阶n和3dB截止频率Wn,从而利用cheby1函数设计模拟滤波器。
函数cheb2ord,该函数用于ChebyshevⅡ型滤波器阶的选择。
[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs)
[n,Wn]=