淮北煤炭师范学院学士学位论文 基于MATLAB的数字滤波器设计
2 数字滤波器及MATLAB语言概述
2.1 数字滤波器的定义和分类
数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。数字滤波器,输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件[2]。对于数字滤波器而言,若系统函数为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)的频谱,而
?为数字角频率。
数字滤波器可以有很多种分类方法,但总体上可分为两大类。一类称为经典滤波器,即一般的滤波器,其特点是输入信号中的有用成分和希望滤除的成分占用不同的频带,通过合适的选频滤波器可以实现滤波[3]。例如,若输入信号中有干扰,信号和干扰的频带互不重叠,则可滤出信号中的干扰得到纯信号。但是,如果输入信号中信号和干扰的频带相重叠,则干扰就不能被有效的滤出。另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的成分频带重叠。对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器。从时域特性上看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。
对于有限冲激响应数字滤波器(FIR),其输出y(n)只取决于有限个过去和现在的输入,x(n),x(n-1),…,x(n-m),滤波器的输入输出关系可表示为
y(n)=?brx(n?r) (2-4)
r?0M2
淮北煤炭师范学院学士学位论文 基于MATLAB的数字滤波器设计
对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为
y(n)+?aky(n?k)=?brx(n?r) (2-5)
k?1r?0NM该差分方程的单位冲激响应是无限延续的。
2.2 常用滤波器的性能指标
j?H(e)来说明,常用的性能指标主要有以下滤波器性能一般用系统频率特性
三个参数:
1. 幅度平方函数
H(ej?)?H(ej?)?H*(ej?)?H(ej?)H(e?j?) ?H(z)H*(z)z?ej?2 (2-6)
该性能指标主要用来说明系统的幅频特性。
2.相位函数
H(ej?)?Re[H(ej?)]?jIm[H(ej?)]?H(ej?)ej?(ej?) (2-7)
其中:
?Im[H(ej?)]??(e)?arctg??j?Re[H(e)]?? (2-8)
j?该指标主要用来说明系统的相位特性。
3.群延时
d[?(ej?)]?(?)??d? (2-9)
定义为相位对角频率导数的负值,说明了滤波器对不同的频率成分的平均延时。当要求在通带内的群延迟是常数时,滤波器相位响应特性应该是线性的。
实际设计中所能得到的滤波器的频率特性与理想滤波器的频率特性之间存在着一些显著的差别,现以低通滤波器的频率特性为例进行说明。
1.理想滤波器的特性:
设滤波器输入信号为x(t),信号中混入噪音u(t),它们有不同的频率成分。滤
3
淮北煤炭师范学院学士学位论文 基于MATLAB的数字滤波器设计
波器的单位脉冲响应为h(t)。则理想滤波器输出为:
y(t)?[x(t)?u(t)]?h(t)?K?x(t??) (2-10)
即噪音信号被滤除u(t)?h(t)?0,而信号无失真只有延时和线性放大。对上式作傅里叶变换得:
Y(j?)?X(j?)?H(j?)?U(j?)?H(j?)?Ke?j??X(j?) (2-11)
假定噪音信号被滤除,即:
U(j?)?H(j?)?0 (2-12)
整理得:
H(j?)?Y(j?)?Ke?j??X(j?) (2-13)
h(t)
H(j?)K0
?c?
t
图1 理想低通滤波器频率特性 图2 理性滤波器的单位脉冲响应(??0)
假定信号频率成分为:低通滤波器特性是:
???c,噪音频率成分为
???c。则完成滤波的理想
?j?? |?|??cY(j?)?K?eH(j?)???X(j?)?0 |?|??c (2-14)
即:
?K |?|??c|H(j?)|???0 |?|??c (2-15)
arg(H(j?))???? (2-16)
系统的单位脉冲响应为:
1h(t)?2???c??cKe?j???ej?td??Ksin[(t??)?c]?(t??) (2-17)
理性低通滤波器的频率特性如图1所示,单位脉冲响应的波形如图2所示。 理想滤波器具有非因果、无限长的单位脉冲响应和不连续的频率特性,要用
4
淮北煤炭师范学院学士学位论文 基于MATLAB的数字滤波器设计
稳定的线性时不变(LTI)系统来实现这样的特性是不可能的[4]。工程上是用脉冲响应为有限长的、因果的、稳定的线性时不变系统或具有连续频率特性的线性时不变系统来逼近理想特性。在满足一定的误差要求的情况下来实现理想滤波特性。因此实际的滤波器的频率特性如图3所示。
其中:
1??11??1H(ej?)过渡带 ?2通 带 阻带 0?c?s?图3实际滤波器的频率特性性
?c——截止频率 ?s——阻带起始频率
?s??c——过渡带宽 在通带内幅度响应以
??1的误差接近于1,即:
1??1?H(ej?)?1??1???c (2-18)
?s为阻带起始频率,在阻带内幅度响应以小于?2的误差接近于零,即:
H(ej?)??2?s???? (2-19)
为了使逼近理想低通滤波器的方法成为可能,还必须提供一带宽为不为零的过渡带。在这个频带内,幅度响应从通带平滑的下落到阻带。
?s??c的
5
淮北煤炭师范学院学士学位论文 基于MATLAB的数字滤波器设计
2.3 MATLAB概述
MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软件库,集数值计算、矩阵运算和信号处理与显示于一身。该软件最初是由美国教授Cleve Moler创立的。1980年前后,他在教线性代数课程时,发现用其他高级语言编程时极不方便,便构思开发了MATLAB,即矩阵实验室(Matrix Laboratory)。该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此产生了[5]。
最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。1984年该公司推出了第一个MATLAB的商业版,并用C语言作出了全部改写。现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steve Bangert主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little和Cleve Moler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。接着又添加了丰富的图形图像处理、多媒体功能、符号运算和与其它流行软件的接口功能,使MATLAB的功能越来越强大。
MTALAB系统主要由以下五个部分组成[6]:
(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中调
6