IIR滤波器的MATLAB设计及DSP实现_精品文档.doc
《IIR滤波器的MATLAB设计及DSP实现_精品文档.doc》由会员分享,可在线阅读,更多相关《IIR滤波器的MATLAB设计及DSP实现_精品文档.doc(38页珍藏版)》请在冰豆网上搜索。
IIR滤波器的MATLAB设计及DSP实现
1绪论
1.1滤波器技术的发展状况
数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。
具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。
数字信号处理理论与技术的发展,主要是由于电子计算机与大规模集成电路的大量生产和广泛应用,替代了原来的模拟信号处理中的线性滤波与频谱分析所应用的模拟计算机和分立元件L、C、R线性网络,高度发挥了计算技术与数字技术相结合的特色和优越性。
特别是微处理器和微型计算机技术日新月异的发展,经更有利于电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能等方向发展,促使它们成为富有智能型的电子系统。
现在,包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展;据统计这种趋势还要持续一个较长的时期,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性发展。
1.2数字滤波器的定义和分类
数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测与参数估计等处理,在通信、语言、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
尤其在图像处理、数据压缩等方面取得了令人瞩目的进展和成就。
鉴于此,数字滤波器的设计就显得尤为重要。
由于图像在摄取过程中收到摄取器件、周围环境、通道传输误差等影响,会使摄取到的图像中含有噪声。
噪声通常是随机产生的,因而具有分布和大小的不规律性。
影响了图像的视觉效果和有关处理工作。
因此需要对图像中的噪声进行消除。
而噪声消除也就是滤波,目前数字滤波器的设计有许多现成的高级语言设计程序,但他们都存在设计效率低,不具有可视图形,不便于参数修改等缺点,而MATLAB的FDATool工具为数字滤波器的研究和应用提供了一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算、可视化、仿真设计融合到一个交互式的工作环境中。
尤其是MATLAB工具箱使各个领域的研究人员可以直观方便地进行科学研究和工程应用。
数字滤波器是用来完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。
因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。
从数字滤波器的单位冲击响应来看,可以分为两大类:
有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。
滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。
理想滤波器就是一个让输入信号中的某些有用频率分量无任何变化的通过,同时又能完全抑制另外那些不需要的成分的具有某种选择性的器件、网络或以计算机硬件支持的计算程序。
数字滤波器是指输入输出都是数字信号的滤波器。
离散系统分为递归型和非递归型两大类,相应的滤波器也有这两大类之分。
IIR滤波器就是递归型,而FIR滤波器属于非递归型。
递归型滤波器是无限冲击响应滤波器,这类滤波器的冲击响应h(n)是无限长度[1]。
1.3数字滤波器的实现方法
实现滤波器的设计,就是要确定其传递函数,传递函数H(z)已知后,则可以确定系统的频率响应为,其中分别是幅频特性和相位特性。
对于无失真传输系统,有
,即
幅频特性为常数,信号通过系统后各频率分量的相对大小保持不变,没有幅度失真。
相位特性为线性,使对应的时域方程的时延量为常数:
,即系统对各频率分量的延迟时间相同,保证了各频率分量的相对位置不变,没有相位失真。
数字通信对相位的要求比模拟通信高许多,线性相位很重要。
数字系统描述时延的函数有两个:
群时延:
:
反映相频曲线的线性程度;相时延:
:
反映各频率分量在时域的相对延时。
所以无相位失真的传输条件是要具有恒群时延和恒相时延,即==常数[2]。
数字滤波器的实现方法一般有以下几种:
(1)在通用的计算机(如PC)上用软件(如C语言)实现。
软件可以是由自己编写,也可以使用现成的软件包。
这种方法的缺点是速度太慢,不能用实时系统,主要用于DSP算法的模拟与仿真。
(2)在通用的计算机系统中加上专用的加速处理机实现。
这种方法不便于统的独立运行。
(3)用通用的单片机实现。
单片机的接口性能良好容易实现人机接口。
由单片机采用的是冯诺依曼总线结构,系统比较复杂,实现乘法运算速度较慢,在数字滤波器中涉及大量的乘法运算,因此,这种方法适用于一些不太复杂数字信号处理。
(4)用通用的可编程DSP芯片实现。
与单片机相比,DSP有着更适合于数滤波的特点。
它利用改进的哈佛总线结构,内部有硬件乘法器、累加器,使流水线结构,具有良好的并行特点,并有专门设计的适用于数字信号处理的令系统等。
(5)用专用的DSP芯片实现。
在一些特殊的场合,要求的信号处理速度极,而通用DSP芯片很难实现,这种芯片将相应的信号处理算法在芯片内部用件实现,无须进行编程。
(6)用FPGA等可编程器件来开发数字滤波算法。
使用相关开发工具和VHDL等硬件开发语言,通过软件编程用硬件实现特定的数字滤波算法。
这一法由于具有通用性的特点并可以实现算法的并行运算,无论是作为独立的数信号处理,还是作为DSP芯片的协作处理器都是比较活跃的研究领域。
通过比较这些方法可见:
可以采用MATLAB等软件来学习数字滤波器的基知识,计算数字滤波器的系数,研究算法的可行性,对数字滤波器进行前期的仿真。
可以采用DSP或FPGA来实现硬件电路[3]。
1.4本文的研究内容
本论文主要:
①研究数字滤波的理论知识,为系统整体设计奠定了理论基础;②研究了MATLAB软件在数字信号处理,尤其是数字滤波器处理中的应用,仿真出了几种数字滤波器的基本模型;③研究TI公司TMS320VC5402数字信号处理器的内部结构及片上资源,并研究通信电子线路中各种接口的相互连接关系,设计了一个价格低、功耗小、精度高的数字滤波器系统。
④研究无限长冲激响应数字滤波器在DSP中的具体实现方法。
2IIR滤波器的原理及设计方法
2.1IIR滤波器的介绍
无限长冲击响应数字滤波器特点是具有无限持续时间的冲激响应,由于这种滤波器一般需要用递归模型来实现,因而又称为递归滤波器。
因为IIR滤波器不仅用了输入有限项计算,而且把滤波器以前输出的有限项重新输入再计算,这在工程上称为反馈。
IIR滤波器系统函数的极点可以在单位圆内的任何位置,实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,又由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。
设计IIR数字滤波器的方法主要有基于冲激响应不变法的IIR数字滤波器设计,基于双线性Z变换法的IIR数字滤波器设计,数字高通、带通及带阻IIR滤波器设计,基于MATLAB函数直接设计IIR数字滤波器。
IIR滤波器的滤波表达式可以定义为一个差分方程:
(2-1)
式中:
x(n)、y(n)分别为输入和输出时域信号序列;,均为滤波系数。
它的系统传递函数也可以用下式表示:
(2-2)
式中:
N为IIR滤波器的阶数(滤波器系统传递函数的极点数);M为滤波器系统传递函数的零点数;和均为权函数系数。
IIR数字滤波器的设计通常借助于模拟滤波器原型,再将模拟滤波器转换为数字滤波器。
模拟滤波器的设计较为成熟,既有完整的设计公式,还有较为完整的可供查询的图表,因此,充分利用这些已有的资源无疑会给数字滤波器的设计带来很多便利[4]。
2.2IIR滤波器的结构
无限长单位脉冲响应滤波器的系统函数为:
(2-3)
对应的差分方程为:
(2-4)
其中,y(n)由两部分构成:
第一部分是一个对x(n)的M字节延时链结构,每节延时抽头后加权相加;第二部分是一个对y(n)的延时抽头加权后相加,因此是一个反馈网络,这种结构称为直接型I,如图2-1所示。
y(n)
x(n)n
图2-1直接型Ⅰ结构方框图
将上式写成(当M=N的情况):
(2-5)
因此H(z)可视为分子多项式和分母多项式的倒数所构成的两个系函数的乘积,这相当于两个子系统的级联。
其中第一子系统实现零点为:
=(2-6)
故得:
(2-7)
其时域表达式为:
(2-8)
第二子系统实现极点为:
(2-9)
整理后得:
=+(2-10)
时域表达式:
(2-11)
如果相同输出的延迟单元合并成一个,则得到如图2-2所示的结构图。
N阶滤波器只需要N级延迟单元,这是实现N阶滤波器所必须的最少数量的延迟单元。
这种结构称为直接型II,有时将直接型工简称为直接型,将直接型II称为典型形式。
x(n)
y(n)
图2-2直接型Ⅱ结构方框图
线性信号流图理论中有许多运算处理方法,可以在保持输入和输出之间的传输关系不变的情况下,将信号流图变换成各种不同的形式。
其中流图转置的方法可导出一种转置滤波器结构,具体地讲,就是把网络中所有支路的方向都颠倒反向,且输入输出的位置互相调换一下。
对于单输入输出系统来说,倒转后的结构和原结构的系统函数相同,但对有限字长而言,转置结构与原结构性质不同。
直接型I,II结构的优点是简单直观。
它们的共同缺点是:
系数a[k],b[r]对滤波器性能的控制关系不直接,因此调整不方便。
更严重的是这种结构的极点位置灵敏度太大,对字长效应太敏感,容易出现不稳定现象,产生较大误差。
由于直接型结构存在上述缺点,因此一般采用以下结构更具有优越性。
将式中的分子分母表达为因子的形式,即:
(2-12)
式中A为归一化常数。
由于系统函数H(z)的系数,互.都是实系数,故零点、极点,只有两种情况:
或者是实根,或者是共扼复根[5]。
2.3IIR滤波器的总体设计步骤
设计过程:
1、按设计任务,确定滤波器性能要求,制定技术指标
2、用一个因果稳定的离散系统的系统函数H(z)逼近此性能指标
3、利用有限精度算法实现此系统函数:
如运算结构、字长的选择等
4、实际技术实现:
软件法、硬件法或DSP芯片法
IIR数字滤波器的系统函数是z的有理函数,可表示为:
(2-13)
系统函数的设计就是要确定系数或者零、极点,以使滤波器满足给定的性能要求。
设计方法:
1、零极点位置累试法。
当滤波器性能未达到要求时,通过多次改变零极点的位置来达到要求。
此方法只适用于简单滤波器。
2、用模拟滤波器理论来设计数字滤波器。
在IIR数字滤波器的设计中较多的采用这种方法。
3、用计算机辅助设计,优化技术设计[6]。
2.3.1用脉冲相应不变法设计IIR数字滤波器
利用模拟滤波器来设计数字滤波器,也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不