基于MATLAB的数字滤波器方案设计书.docx
- 文档编号:6230779
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:43
- 大小:471KB
基于MATLAB的数字滤波器方案设计书.docx
《基于MATLAB的数字滤波器方案设计书.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的数字滤波器方案设计书.docx(43页珍藏版)》请在冰点文库上搜索。
基于MATLAB的数字滤波器方案设计书
2009届学士学位论文
基于MATLAB的数字滤波器设计
学院、专业物理与电子信息学院
电子信息科学与技术
研究方向基于MATLAB的数字滤波器设计
学生姓名耿博
学号200513432024
指导教师姓名邹锋
指导教师职称讲师
2009年4月18
基于MATLAB的数字滤波器设计
耿博
(淮北煤炭师范学院物理与电子信息学院235000)
摘要随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。
数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。
对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。
本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。
关键词数字滤波器;IIR;FIR;MATLAB
TheDesignofDigitalFilterbasedonMATLAB
GengBo
SchoolofPhysicsandElectronicsInformation,HuaibeiCoalIndustryTeachers’College,235000
ABSTRACTAlongwiththeinformationageandthedigitalworldarrival,thedigitalsignalprocessinghasbecomeanowextremelyimportantdisciplineandtheareaoftechnology.Thedigitalsignalprocessinginthecorrespondence,themultitudinousdomainsthepronunciationsuchastheimage,theautomaticcontrol,theradar,themilitary,theaerospace,themedicalserviceandthedomesticelectricappliancesandsoonhaveobtainedthewidespreadapplication.Inthedigitalsignalprocessingapplication,thedigitalfilterareextremelyimportantandhaveobtainedthewidespreadapplication.
Thedigitalfilterarethedigitalsignalprocessingimportantcontent,thedigitalfiltermaydivideintoIIRandtheFIRtwomainkinds.AsfortheIIRdigitalfilterdesign,weneedthehelpofanalogprototypefilter,andthentransformanalogfilterintodigitalfilter.Inthepaperweusethedesignofthepulseresponseinvariablemethod,thebilinearmethodandfullfunctiondesign;asfortheFIRfilter,wecandesignitdirectlybasedonthegivingfrequency,inthepaperitusesthedesignofthewindowfunction.ThisarticleaccordingtotheIIRfilterandtheFIRfiltercharacteristic,usesthebilinearitymethodoftransformationundertheMATLABbadboundarytodesignIIRandtodesigntheFIRnumeralfilterseparatelywiththewindowboxnumber,andcarriesontheanalysistothegatheringpronunciationsignal,andfinallygivesIIRandFIRtothepronunciationfiltereffect.
KeywordsDigtialFilter;IIR;FIR;MATLAB
目次
1引言
数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。
目前,数字信号滤波器的设计在图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。
近年来迅速发展起来。
MATLAB是美国MathWorks公司推出的一套用于工程计算的可视化高性能语言与软件环境。
MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。
MATLAB推出的工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应用,其中的信号处理(signalproeessing)、图像处理(imageproeessing)、小波(wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。
数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行的特殊滤波等优点
。
本文主要介绍有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)的设计原理、方法、步骤以及在MATLAB中的实现,并以实例形式列出设计程序和仿真结果。
2数字滤波器及MATLAB语言概述
2.1数字滤波器的定义和分类
数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。
因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。
数字滤波器,输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件
。
对于数字滤波器而言,若系统函数为H(z),其脉冲响应为h(n),输入时间序列为x(n),则它们在时域内的关系式如下:
y(n)=h(n)﹡x(n)(2-1)
在Z域内,输入和输出存在如下关系:
Y(z)=H(z)X(z)(2-2)
式中,X(z)、Y(z)分别为x(n)和y(n)的Z变换。
在频域内,输入和输出则存在如下关系:
Y(j
)=H(j
)X(j
)(2-3)
式中,H(j
)是数字滤波器的频率特性;X(j
)Y(j
)分别为x(n)和y(n)的频谱,而
为数字角频率。
数字滤波器可以有很多种分类方法,但总体上可分为两大类。
一类称为经典滤波器,即一般的滤波器,其特点是输入信号中的有用成分和希望滤除的成分占用不同的频带,通过合适的选频滤波器可以实现滤波
。
例如,若输入信号中有干扰,信号和干扰的频带互不重叠,则可滤出信号中的干扰得到纯信号。
但是,如果输入信号中信号和干扰的频带相重叠,则干扰就不能被有效的滤出。
另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的成分频带重叠。
对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器。
从时域特性上看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。
对于有限冲激响应数字滤波器(FIR),其输出y(n)只取决于有限个过去和现在的输入,x(n),x(n-1),…,x(n-m),滤波器的输入输出关系可表示为
y(n)=
(2-4)
对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为
y(n)+
=
(2-5)
该差分方程的单位冲激响应是无限延续的。
2.2常用滤波器的性能指标
滤波器性能一般用系统频率特性
来说明,常用的性能指标主要有以下三个参数:
1.幅度平方函数
(2-6)
该性能指标主要用来说明系统的幅频特性。
2.相位函数
(2-7)
其中:
(2-8)
该指标主要用来说明系统的相位特性。
3.群延时
(2-9)
定义为相位对角频率导数的负值,说明了滤波器对不同的频率成分的平均延时。
当要求在通带内的群延迟是常数时,滤波器相位响应特性应该是线性的。
实际设计中所能得到的滤波器的频率特性与理想滤波器的频率特性之间存在着一些显著的差别,现以低通滤波器的频率特性为例进行说明。
1.理想滤波器的特性:
设滤波器输入信号为
,信号中混入噪音
,它们有不同的频率成分。
滤波器的单位脉冲响应为
。
则理想滤波器输出为:
(2-10)
即噪音信号被滤除
,而信号无失真只有延时和线性放大。
对上式作傅里叶变换得:
(2-11)
假定噪音信号被滤除,即:
(2-12)
整理得:
(2-13)
图1理想低通滤波器频率特性图2理性滤波器的单位脉冲响应(
)
假定信号频率成分为:
,噪音频率成分为
。
则完成滤波的理想低通滤波器特性是:
(2-14)
即:
(2-15)
(2-16)
系统的单位脉冲响应为:
(2-17)
理性低通滤波器的频率特性如图1所示,单位脉冲响应的波形如图2所示。
理想滤波器具有非因果、无限长的单位脉冲响应和不连续的频率特性,要用稳定的线性时不变(LTI)系统来实现这样的特性是不可能的
。
工程上是用脉冲响应为有限长的、因果的、稳定的线性时不变系统或具有连续频率特性的线性时不变系统来逼近理想特性。
在满足一定的误差要求的情况下来实现理想滤波特性。
因此实际的滤波器的频率特性如图3所示。
其中:
——截止频率
——阻带起始频率
——过渡带宽
在通带内幅度响应以
的误差接近于1,即:
(2-18)
为阻带起始频率,在阻带内幅度响应以小于
的误差接近于零,即:
(2-19)
为了使逼近理想低通滤波器的方法成为可能,还必须提供一带宽为
的不为零的过渡带。
在这个频带内,幅度响应从通带平滑的下落到阻带。
2.3MATLAB概述
MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软件库,集数值计算、矩阵运算和信号处理与显示于一身。
该软件最初是由美国教授CleveMoler创立的。
1980年前后,他在教线性代数课程时,发现用其他高级语言编程时极不方便,便构思开发了MATLAB,即矩阵实验室(MatrixLaboratory)。
该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此产生了
。
最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。
1984年该公司推出了第一个MATLAB的商业版,并用C语言作出了全部改写。
现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steveBangert主持开发编译解释程序,SteveKleiman完成图形功能的设计,JohnLittle和CleveMoler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。
接着又添加了丰富的图形图像处理、多媒体功能、符号运算和与其它流行软件的接口功能,使MATLAB的功能越来越强大。
MTALAB系统主要由以下五个部分组成
:
(1)MATALB语言体系。
MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。
利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。
(2)MATLAB工作环境。
这是对MATLAB提供给用户使用的管理功能的总称。
包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。
(3)图形句相系统。
这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。
(4)MATLAB数学函数库。
这是对MATLAB使用的各种数学算法的总称。
包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。
(5)MATLAB应用程序接口(API)。
这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能
。
除此之外,MATLAB系统还具有如下特点:
(1)具有易学易用的语言体系;
(2)具有交互式的工作环境;
(3)具有多层面的图像处理系统;
(4)具有丰富高效的MATLAB工具箱;
(5)具有便利的程序接口(API);
(6)应用领域广泛;
(7)嵌入了面向对象编程语言。
3IIR滤波器设计
3.1双线性变换法设计IIR数字滤波器
从S平面到Z平面是多值的映射关系会造成频率响应的混叠失真。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图4所示。
图4双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
(3-1)
式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。
将式(3-1)写成
(3-2)
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得
(3-3)
再将S1平面通过以下标准变换关系映射到Z平面z=es1T
从而得到S平面和Z平面的单值映射关系为:
(3-4)
(3-5)
式(3-4)与式(3-5)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换
式(3-1)与式(34)的双线性变换符合映射变换应满足的两点要求。
首先,把z=ejω,可得
(3-6)
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式(3-6),得
(3-7)
因此
(3-8)
由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点:
双线性变换法,其主要的优点是避免了频率响应的混叠现象。
这是因为这里S平面与Z平面是单值的一一对应关系。
S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。
这个关系如式(3-6)所示,重写如下:
(3-9)
上式表明,S平面上Ω与Z平面的ω成非线性的正切关系,如图5所示。
由图5看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图5双线性变换法的频率变换关系
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式(3-6)及图5所示。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图8所示。
图6双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
在MATLAB中,双线性变换法的调用函数是bilinear。
其调用格式为:
a.[zd,pd,kd]=bilinear(z,p,k,fs)
b.[zd,pd,kd]=bilinear(z,p,k,fs,fp)
c.[numd,dend]=bilinear(num,den,fs)
d.[numd,dend]=bilinear(num,den,fs,fp)
e.[Aa,Bb,Cc,Dd]=bilinear(A,B,C,D,fs)
f.[Aa,Bb,Cc,Dd]=bilinear(A,B,C,D,fs,fp)
[zd,pd,kd]=bilinear(z,p,k,fs)是把模拟滤波器的零极点模型转换为数字滤波器的零极点模型,fs为采样频率,z,p,k分别为滤波器的零点、极点和增益;
[numd,dend]=bilinear(num,den,fs)是把模拟滤波器的传递函数模型转换为数字滤波器的传递模型;
[Aa,Bb,Cc,Dd]=bilinear(A,B,C,D,fs)是把模拟滤波器的状态方程模型转换为数字滤波器状态方程模型。
例如,用双线性变换法设计一个巴特沃思数字低通滤波器,技术指标如下:
通带截止频率
=2
4krad/s,阻带截止频率
=2
8krad/s,通带波纹系数
=0.3dB,阻带波纹系数
=50dB,采样频率fs=20000Hz。
程序如下:
[N,Wn]=buttord(wp,ws,Rp,Rs,’s’)%估计滤波器最小阶数
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,fs)
freqz(bz,az,Nn,fs)
程序在MATLAB环境下的运行及结果如图7所示:
结果如下:
N=11
Wn=1.4892e+004
bz=
Columns1through6
0.01100.12110.60551.81663.63335.0866
Columns7through12
5.08663.63331.81660.60550.12110.0110
az=
Columns1through6
1.00002.70984.63795.22524.36852.7207
Columns7through12
1.28850.45610.11810.02110.00230.0001
图7巴特沃思数字低通滤波器幅频-相频特性
3.2脉冲响应不变法
顾名思义,脉冲响应不变法就是要求数字滤波器的脉冲响应序列h(n)与模拟滤波器的脉冲响应
的采样值相等,即
h(n)=
=
(3-10)
式中,T为采样周期。
根据模拟信号的拉普拉斯变换与离散序列的Z变换之间的关系,我们知道
H(z)
=
(3-11)
此式表明,
的拉普拉斯变换在s平面上沿虚轴,按照周期
=2
/T延拓后,按式z=
,进行Z变换,就可以将Ha(s)映射为H(z)。
事实上,用脉冲响应不变法设计IIR滤波器,只适合于Ha(s)有单阶极点,且分母多项式的阶次高于分子多项式阶次的情况
。
将Ha(s)用部分分式表示:
Ha(s)=LT[h
]=
(3-12)
式中,LT[·]代表拉普拉斯变换,
为的单阶极点。
将Ha(s)进行拉普拉斯反变换,即可得到
=
(3-13)
式中,u(t)是单位阶跃函数。
则
的离散序列h(n)=
=
对h(n)进行z变换之后,可以得到数字滤波器的系统函数H(z)
H(z)=
=
(3-14)
对比Ha(s)与H(z),我们会发现:
s域中Ha(s)的极点是
,映射到z平面之后,其极点变成了
,而系数没有发生变化,仍为
。
因此,在设计IIR滤波器时,我们只要找出模拟滤波器系统函数Ha(s)的极点和系数
,通过脉冲响应不变法,代入H(z)的表达式中,即可求出H(z),实现连续系统的离散化
。
但是脉冲响应不变法只适合于设计低通和带通滤波器,而不适合于设计高通和带阻滤波器。
因为,如果模拟信号
的频带不是介于
之间,则会在
的奇数倍附近产生频率混叠现象,映射到z平面后,则会在
附近产生频率混叠现象。
从而使所设计的数字滤波器不同程度的偏离模拟滤波器在
附近的频率特性,严重时使数字滤波器不满足给定的技术指标。
为此,希望设计的滤波器是带限滤波器,如果不是带限的,例如,高通滤波器、带阻滤波器,需要在高通滤波器、带阻滤波器之前加保护滤波器,滤出高于折叠频率
/T以上的频带,以免产生频率混叠现象
。
但这样会增加系统的成本和复杂性。
因此,高通与带阻滤波器不适合用这种方法。
将模拟滤波器转化为数字滤波器,牵涉到一个关键的问题,即寻找一种转换关系,将s平面上的Ha(s)转换成z平面上的H(z)。
这里Ha(s)是模拟滤波器的传输函数,H(z)是数字滤波器的系统函数
。
为了确保转换后的H(z)稳定且满足技术要求,转换关系要满足以下要求:
1)将因果稳定的模拟滤波器转换为数字滤波器后,仍然是因果稳定的。
我们知道,当模拟滤波器的传输函数Ha(s)的极点全部位于s平面的左平面时,模拟滤波器才是因果稳定的;对于数字滤波器而言,因果稳定的条件是其传输函数H(z)的极点要全部位于单位圆内。
因此,转换关系应是s平面的左半平面映射到z平面的单位圆内。
2)数字滤波器的频率响应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数字滤波器 方案设计