版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰州理工大学毕业论文第1章 绪论1.1数字滤波器的优点滤波器是指用来对输入信号进行滤波的硬件或软件。如果滤波器的输入、输出都是离散时间信号,则该滤波器的冲激响应也必然离散,这样的滤波器定义为数字滤波器。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,它是通过对采样数据信号进行数学运算处理来达到频域滤波的目的。数字滤波器是提取有用信息非常重要、非常灵活的方法,是现代信号处理的重要内容。因而在数字通信、语音图象处理、谱分析、模式识别、自动控制等领域得到了广泛的应用。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP(DigitalSignalProcessor)处理器的出现和FPGA(FieldProgrammableGateArray)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。相对于模拟滤波器数字滤波器具有以下显著的优点:精度高:模拟电路中元件的精度很难达到10。以上,而数字系统17位字长就可以达到105精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。灵活性大:数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系统存储器中的,只要改变存储器存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。可靠性高:因为数字系统只有两个电平信号“0”和“1易于大规模集成:数字部件具有高度的规范性,便于大规模集成,大规模生产,且数字滤波器电路主要工作在截止或饱和状态,对电路参数要求不严格,因此产品的成品率高,价格也日趋降低。相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势已越来越明显。并行处理:数字滤波器的另外一个最大的优点就是可以实现并行处理,比如数字滤波器可以采用DSP处理器来实现并行处理。TI公司TMS320C5000系列的DSP芯片采用8条指令并行处理的结构,时钟频率为100MHZ的DSP芯片。可高达800M口S(每秒执行百万条指令)。1.2数字滤波器的发展动态近些年,线性滤波方法,如Wiener滤波、Kalman滤波和自适应滤波得到了广泛的研究和应用,同时一些非线性滤波方法,如小波滤波、同态滤波、中值滤波、形态滤波等都是现代信号处理的前言课题,不但有重要的理论意义,而且有广阔的应用前景。Wiener滤波是最早提出的一种滤波方法,当信号混有白噪声时,可以在最小均方误差条件下得到信号的最佳估计。但是,由于求解Wiener-Hoff方程的复杂性,使得Wiener滤波实际应用起来很困难,不过Wiener滤波在理论上的意义是非常重要的,利用Wiener滤波的纯一步预测,可以求解信号的模型参数,进而获得著名的Lcvinson算法。Kalman滤波是20世纪60年代初提出的一种滤波方法。与Wiener滤波相似,它同样可以在最小均方误差条件下给出信号的最佳估计。所不同的是,这种滤波技术在时域中采用递推方式进行,因此速度快,便于实时处理,从而得到了广泛的应用。Kalman滤波推广到二维,可以用于图象的去噪。当假设Wiener滤波器的单位脉冲响应为有限长时,可以采用自适应滤波的方法得到滤波器的最佳响应。由于它避开了求解Wiener-Hoff方程,为某些问题的解决带来了极大的方便。小波滤波就是利用信号和噪声的目的。同态滤波主要用于解决信号和噪声之间不是相加而是相乘关系时滤波问题。另外,当信号和噪声之间为卷积关系的时候,在一定条件下可以利用同态滤波把信号有效地分离开来由同态滤波理论引申出的复时谱也成为现代信号处理中极为重要的概念。Wiener滤波、Kalman滤波和自适应滤波都是线性滤波,线性滤波的最大缺点就是在消除噪声的同时,会造成信号边缘的模糊。中值滤波是20世纪70年代提出的一种非线性滤波方法,它可以在最小绝对误差条件下,给出信号的最佳估计。这种滤波方法的优点,就是能够保持信号的边缘不模糊。另外它对脉冲噪声也有良好的清除作用。形态滤波是建立在集合运算上的一种非线性滤波方法,它除了用于滤除信号中的噪声外,还在图象分析中发挥了重要的作用1.3数字滤波器的实现方法数字滤波器的实现方法一般有以下几种:在通用的计算机(如PC)上用软件(如C语言)实现。软件可以是由自己编写,也可以使用现成的软件包。这种方法的缺点是速度太慢,不能用于实时系统,主要用于DSP算法的模拟与仿真。在通用的计算机系统中加上专用的加速处理机实现。这种方法不便于系统的独立运行。用通用的单片机实现。单片机的接口性能良好容易实现人机接口。由于单片机采用的是冯诺依曼总线结构,系统比较复杂,实现乘法运算速度较慢,而在数字滤波器中涉及大量的乘法运算,因此,这种方法适用于一些不太复杂的数字信号处理。用通用的可编程DSP芯片实现。与单片机相比,DSP有着更适合于数字滤波的特点。它利用改进的哈佛总线结构,内部有硬件乘法器、累加器,使用流水线结构,具有良好的并行特点,并有专门设计的适用于数字信号处理的指令系统等。用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,而通用DSP芯片很难实现,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无须进行编程。用FPGA等可编程器件来开发数字滤波算法。使用相关开发工具和VHDL等硬件开发语言,通过软件编程用硬件实现特定的数字滤波算法。这一方法由于具有通用性的特点并可以实现算法的并行运算,无论是作为独立的数字信号处理,还是作为DSP芯片的协作处理器都是比较活跃的研究领域。通过比较这些方法可见:可以采用MATLAB等软件来学习数字滤波器的基本知识,计算数字滤波器的系数,研究算法的可行性,对数字滤波器进行前期的仿真。可以采用DSP或FPGA来实现硬件电路。本论文研究的重点集中在利用DSP来实现数字滤波的硬件电路。1.4数字滤波器的设计过程数字滤波器设计过程就是从给定的技术指标开始到以滤波器产品原型的实现而结束的一系列过程,该过程包括四个一般步骤:函数逼近、电路实现、缺陷研究、产品实现。函数逼近:就是产生满足理想技术指标的转移函数即建立一个目标的数字滤波器模型。通常,首先采用理想的数字滤波器模型,然后利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。电路实现:是把滤波器的转移函数转换为方框图(也叫做数字滤波器网络)或转换为一组对输入数字序列进行顺序计算的方程。缺陷研究:研究各种非理想因素的影响,如存储采样值和系数的有限字长,或在不违反滤波器技术指标的条件下所允许的最大量化步长。产品实现:用硬件(DSP处理器、专用硬件、常用VLSI芯片)或者在普通计算机、专用计算机或阵列处理器上运行的软件构建滤波器的原型,需要进行的判断如器件的类型和制造方法、数据字长,系数字长等。通常上述四个步骤互相并不独立,但是一般分别进行,其主要目的是在最短时间内找出最经济的方案。而基于DSP的数字滤波器的设计过程如下:(1)根据指标确定滤波器的类型,设计出滤波器的函数逼近;(2)根据DSP的特点(字长,精度等)对参数进行取舍、量化,然后进行仿真;(3)根据仿真结果对滤波器的结构、参数再次进行整,直到满足以指标要求为止:(4)在DSP上用语言实现滤波器功能。在上述要求的前提下,找到尽可能简易的实现方法.定点DSP芯片,既可以做定点运算,也可以做浮点运算。一个算法,既可以用汇编语言编程实现,也可以用高级语言(C,c++)实现。而一个数字滤波器是否可以在DSP上实现,最终要看此算法是否满足两个条件:执行时间和精度。一个算法的精度再高,如果不能做到实时,也没有实用价值:相反,如果执行时间很快,但精度满足不了要求,也就无从实现滤波功能。数字滤波器在DSP上的实现思路,应该是在满足上面两个条件的前提下,找到尽可能简易的实现方法。1.5论文研究内容本论文主要:①研究数字滤波的理论知识,为系统整体设计奠定了理论基础:②研究了MATLAB软件在数字信号处理,尤其是数字滤波器处理中的应用,仿真出了几种数字滤波器的基本模;③研究TI公司TMS320VC5509数字信号处理器的内部结构及片上资源,设计一个价格低、功耗小、精度高的数字滤波器系统。④研究有限长冲激响应数字滤波器和无限长冲激响应数字滤波器在DSP中的具体实现方法。编写一套可行的高效的数字滤波器程序⑤研究TI公司DSP系统开发工具的应用,调试系统的硬件平台和程序。1.6本章小结本章首先分析了数字滤波器在工业应用中的优点以及数字滤波的研究现状,然后着重对数字滤波器滤波算法的实现方法和实现过程,最后介绍了本论文研究的内容。第2章 数字滤波器理论研究2.1数字滤波器概述数字滤波器是完成信号滤波处理功能的,用有限进度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波本身既可以是用数字硬件装配成一台完成给定运算的专用的数字计算机,也可以将所需要的运算编程为程序,让通用计算机来执行。信号中一般都包含噪声或者说其中有很多能量在感兴趣的最高频率之外,因此我们要用滤波电路将不感兴趣的带宽之外的信号和噪声移去。数字滤波器是数字信号处理中使用最广泛的一种线性系统环节,图2—1给出了一个具有模拟输入信号和输出信号的实时数据滤波器的简化框图。这个模拟信号被周期地抽样,且转化成一系列数字x(n)(n=0,1…)。数字滤波器依据滤波器的计算算法,执行滤波算法运算、把输入系列x(n)映射到输出系列y(n)。DAC把数字滤波后的输出转化成模拟值,这些模拟值接着被模拟滤波器平滑,并且消去不需要的高频分量图2-1实时数字滤波器简化框图在信号处理中,为了防止采样过程中的混叠现象,必须在A/D转换之前使用低通滤波器,把1/2采样频率以上的信号衰减掉。如图2—2所示,在~D转换前,加入一个低通滤波器,这样,经过A/D转换之后,有效地避免了混叠现象的发生,从而保证了后续数字处理的正常迸行图2-2抗混叠滤波器的作用在实时数字系统中,要根据实断怙况设定不同的分析频率,即信号分析频率可由用户设定,那么抗混卺滤波的截Jf:频率也要发生变化:L-E/2。可以想象,信号分析系统需要在实时系统需要多少挡分析频率,就需要多少只抗混叠滤波器,这样导致模拟电路的设计十分繁琐,而且要保证每个滤波器参数一致,高精度、线性等困难随着DSP技术广泛应用,现在逐步采用的技术是:在经过A/D转换之后,采用数字滤波技术满足不同分析频率下信号分析的需要。相应地,A/D转换保持最高转换频率不变,只需要一个模拟抗混叠滤波器,而通过调节数字滤波器参数改变数字滤波器的输出,相当于改变不同的A/D转换频率。如图2--3所示,A/D转换前端时域参数固定的模拟抗混叠滤波器,在A/D转换后使用参数可调的数字滤波器。这样设计筋化了模拟抗混叠滤波器的设计,提高了系统的稳定性和抗干扰性能。参数固定的模拟参数可调的抗混叠滤波器A_D转换器数字滤波器图2-3抗混叠数字滤波器的作用数字滤波器具有稳定性高、精度高、灵活性大等突出的优点。随着数字技术的发展,用数字技术实现滤波器的功能越来越受到人们的注意和广泛的应用。从数字滤波器的单位冲击响应来看,可咀分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。2.1.1数字滤波器的数学模型经典数字滤波器是一个线性非时变系统,其数学模型可用Z域系统函数H(z)表示为sos=b0kb1kHz=Y模型参数为a,b,N,M。a=a1,a2,⋯yn=输入和输出之间尉时间域结构框图和z域(离散域)结构框图入图2--4所示。x(n)图2-4数字滤波器的结构框图当ak=0,k=1—M时z域系统函数H(z)只有零点,y=hn=yn|显然此时当0≤n≤N时h(n)当ak值不完全为零时,z域系统函数H(z)至少包含有一个极点此时单位脉冲响应必定为无限,对于一个稳定的数字系统,z域系统函数H(z)必须在单位圆内部,通常z域系统函数H(z)包含极点的数字滤波器为无限冲击响应(InfiniteImpulseResponse,IIR数字滤波器的性能指标令z=eHejτω=式中Hejω是数字滤波器的幅频特性;φ(ω)数字滤波器的幅频特性经典数字滤波器从滤波器功能上可分为:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)和带阻滤波器(BSF)。图2—5是理想数字滤波器的幅频特性。理想数字滤波器通常有通带和阻带两个频带组成,通带和阻带之问的幅频特性产生突变,其单位冲击脉冲h(n)是非因果性的无限长序列,不可实现。为了得到稳定、可实现的数字滤波器非实际数字滤波器的频响通常有通带、阻带和过渡带构成;实际数字滤波器的频响通常有通带、阻带和过渡带构成,并且通带和阻带的幅频特性也不是恒定不变。以低通数字滤波器为例,其典型的实际幅频特性如图2—6所示。图中,αp,是通带内最大衰减;↑ωp是通带内数字相角频率;αs是阻带内最小衰减;ωs是阻带数字相角频率ωp图2-5是理想数字滤波器的幅频特性图2-6实际低通数字滤波器的典型幅频特性δpφω=总之,αp,αs,ωp,ωs在数字滤波器的设计中非常重要,这几个参数就统称为数字滤波器的技术指标。可以表示为[(通带角频率,通带衰减),(阻带角频率,阻带衰减数字滤波器的相频特性设计数字滤波器时,大多数场合只需要考虑满足幅频特性。但是在一些特殊场合(如图象信号处理)对滤波器的相频特性也有严格的要求。主要希望数字滤波器具有线性相位特性,保证不同信号成分的正弦信号通过滤波器后的延迟相同。线性相位系统的相频特性必须满足φω=式中,α和β为常数。2.2数字滤波器的设计方法滤波是从分析信号中提取用户需要的信息,滤去不需要的信号成分或干扰信号成分。根据不同的设计要求,以及信号与干扰的不同关系,可以从时域、频域或变换域(同态)进行信号滤波设计。2.2.1频域数字滤波所谓频域数字滤波就是要提取或抑制分析信号x(n)中某些频带的信号成分η(n)。在设计频域数字滤波时,要求信号s(n)和被滤出信号η(n)在频域具有可分性。设分析信号x(n)=s(n)+η(n),其中s(n)为真实信号,η(n)为干扰信号。当s(n)和η(n)的频带相互重叠时,就不可能从频域滤波设计得到真实信号s(n)。x(n)=s(n)*h(n)2.2.2时域数字滤波信号分析过程中,真实信号s(n)往往会受到干扰信号加性噪声η(n)的干扰,由于噪声频谱很宽,信号s(n)的频谱和噪声η(n)的频谱肯定会受产生重叠。当信噪比(SNR)较低时,噪声频谱甚至会淹没信号频谱,也就是说,当信号和噪声在频域没有可分性,只能在时域进行滤波设计,根据信号和噪声的统计特性差异将它们分开,常用的设计方法为最小二乘法。2.2.3同态数字滤波有时真实信号虽然并没有受到时域加性噪声的干扰,但因为各种原因却产生了畸变。最常见的是乘积性畸变和卷积性畸变,即x(n)=s(n)∙h(n)或x(n)=s(n)*h(n)。从这些畸变信号x(n)中滤出真实信号的过程称为同态滤波。在频域、时域和同态滤波器设计中,频域滤波设计属于经典数字滤波范畴,时域和同态滤波设计属于现代滤波设计范畴。2.3IIR数字滤波器结构Hz=r=0对应的差分方程为:yn=其中y(n)由两部分构成:第一部分r=0Mbrxn-r是一个对输入x(n)的M节延时链结构,每节延时抽头后加权相加:第二部分图2-7直接型I结构方框图将上式改写为(当M=N的情况):HZ=由此H(z)可视为分予多项式r=0NbrH1z=Y(z故得:Yz=r=0Nbr其时域表示为:yn=r=0Nbr第二子系统实现级点为:H2z=W(z)整理以后可得:Wz=Xz+k=1其时域表示为:wn=xn+k=1N综上说述可以得到如图2—8的实现结构图2-8直接型I的变形结构方框图如果将图2-8中相同输出的延迟单元合并成一个,则得到如图2-9所示的结构图,它比上图的延迟单元少了一倍,N阶滤波器只需要N级延迟单元,这是实现N阶滤波器所必须的最少数量的延迟单元。这种结构称为直接型II,有时将直接型I简称为直接型,将直接型lI称为典型型式图2-9直接型II结构方框图线性信号流图理论中有许多运算处理方法,可以在保持输入和输出之间的传输关系不变的情况下,将信号流图变换成各种不同的形式。其中流图转置的方法可导出一种转置滤波器结构,具体地讲,就是把网络中所有支路的方向都颠倒反向,且输入输出的位置互相调换一下。对于单输入输出系统来说,倒转后的结构和原结构的系统函数相同,但对有限字长而言,转置结构与原结构性质不同。直接型I、II结构的优点是简单直观。它们的共同缺点是:系数ak、b,对滤波器性能的控制关系不直接,因此调整不方便。更严重的是这种结构的极点位置灵敏度太大,对字长效应太敏感,容易出现不稳定现象,产生较大误差。由于直接型结构存在上述缺点,因此一般采用以下结构更具有优越性。将式中的分子分母表达为因子的形式,即:Hz=r=0M式中A为归一化常数。由于系统函数H(z)的系数ak、br都是实系数,故零、crHz=Ai=1式中M=M1+2M2,N=N1+2N2,2.4FIR数字滤波器结构有限长单位脉冲响应滤波器的系统函数为:Hz=n=0N其差分方程为:yn=k=0N其基本结构型式有以下几种:由上式可以得出如下图2-10所示的直接型结构,这种结构又可以称为卷积型结构。图2-9FIR滤波器直接型结构图将转置理论应用于上图可以得到图(2—5)所示的转置直接型结构图2-10FIR滤波器转置结构图将式中的系统函数H(z)分解成若干一阶和二阶多项式的连乘积:Hz=k=1M则可构成如图2-11所示的级联型结构。其中H1kz=a0k(1)+a1k(1)z-1为一阶节;H(a)级联型结构框图(b)级联型结构框图图2-11FIR级联型结构构成2.5IIR与FIR数字滤波器的比较IlR滤波器系统函数的极点可以位于单位圆内的任何地方,因此可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高。但这些是以相位的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器系统函数的极点固定在原点,所以只能用较高的阶数达到高选择性,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5—10倍,成本较高,信号延时也较大。如果按相同的选择性和相同的线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样要大大增加滤波器的节数和复杂性FIR滤波器可以用非递归方法实现,有限精度的计算不会产生振荡。同时由于量化舍入以及系数的不准确所引起的误差的影响比IIR滤波器要小得多。显然对fIR滤波器必须留心稳定性问题,注意极点是否会位于单位圆之外,另外有限字长效应有时会引起寄生振荡。再者FIR滤波器可采用n叮算法,在相同阶数下,运算速度可以快得多14J。IIR滤波器可以借助于模拟滤波器的成果,一般都有有效的封闭式设计公式可供准确计算,计算工作量比较小,对计算工具要求不高。FIR滤波器没有现成设计公式。窗函数法仅仅可以给出窗函数的计算公式,但计算通、阻带衰减仍无显式表达式、其他大多数设计FIR滤波器的方法都需要借助计算机辅助设计。IlR滤波器设计法,主要是设计规格化的,频率特性为分段常数的滤波器,而FIR滤波器则易于适应某些特殊应用,如构成微分器或积分器,或用于巴特渥斯、切比雪夫等逼近不可能达到预定指标的情况,例如由于某些原因要求三角形振幅响应第3章 数字滤波器的计算机辅助设计数字滤波器用硬件实现的基本部件包括延迟器、乘法器和加法器;如果用软件来实现时,它即是一段线性卷积程序。软件实现的优点是系统函数具有可变性,仅依赖于算法结构,并且易于获得较理想的滤波性能,所以软件滤波在滤波器的使用中起到了越来越重要的作用。各种高级语言在设计和实现滤波器当中都有一整套成熟的程序组,在使用这些程序时让使用者感到头痛的是它们冗长的程序和修改参数的不方便,特别是滤波器各种表达式和滤波器各种形式相互之间的转换,显得十分复杂。滤波器软件的设计和实现在信号处理软件设计和使用当中占有十分重要的地位和作用。MATLAB的信号处理工具箱的两个基本组成就是滤波器的设计和实现以及频谱分析。工具箱提供了丰富而简单的设计、实现FIR和IIR的方法,使原来繁琐的程序设计简化成函数的调用,特别是滤波器的表达方式和滤波器形式之间的相互转换显得十分简便,为滤波器的设计和实现开辟了一片广阔的天地。IIR与FIR滤波器不论是在性能上还是在设计方法上都有很大的区别。FIR滤波器可以对给定的频率特性直接设计,而IIR滤波器目前最通用的方法是利用已成熟的模拟滤波器的设计方法来进行设计。不管是IIR还是FIR滤波器的设计都包括以下三个步骤:给出所需要的滤波器的技术指标;设计一个H(z)使其逼近所需要的技术指标:实现所设计的H(z)3.1滤波器的表达方式在线性系统理论中,系统表示一般常用的数学模型包括有:传递函数模型(系统外部模型)、状态方程模型(系统内部模型)和零极点增益模型等。这些数学模型之间有着内在的等效关系,使用在不同场合有其各自的优势。3.1.1滤波器的传递函数模型一个线一睦时不变(LTI)数字滤波器可以用以下的长系数线性差分方程来表一个线一睦时不变(LTI)数字滤波器可以用以下的长系数线性差分方程来表不:yn=i=1M式中x(n)和y(n)分别表示输入和输出信号序列,ai和bi以是滤波器系数。当式中yn=i=1M则称该滤波器为非递归型滤波器,此时系统的输出与输入有关,而与输出无关,这种滤波器没有极点,故称之为全零点滤波器。当bi不全为零时,即输出不仅与输入有关,而且与过去的输出有关,则称这种滤波器为递归型滤波器。设式中输入信号x(n)与输出信号y(n)在n=0i=1Nbiy式中的b0=1,对上式两边进行zi=0Nbiz得到系统的脉冲传递函数为Hz=i=1M对LTI系统来说,上式中ai和b这种系统在MATLAB当中可以用其分子和分母的系数,即滤波器系数构成的两个向量来唯一确定:num=den=b1,b2可以对传递函数进行首一化处理,在传递函数的上下同时除以b1num=den=b1,b23.1.2滤波器的状态方程模型状念方程是描述系统的一种常用的方式,这种方式是基于系统的不可见的状态变量的.所以又往往称为系统的内部描述方法。连续LTI系统的状态方程可以写成xyt=Cxt+Du(t其中A,B,C,D分别为常数矩阵,在MATLAB中,一般情况下,系统的状态方程可以简记为(A,B,C,D),如果D=0,则系统的状态方程模型可以简记为(A,B,C)对于离散时间系统来说,状态方程模型可以写成:xyi+1T=Cxi+1以上可写成xyi+1=Cxi+1这样离散时间系统的状态方程模型也可以写成(A,B,C,D)或(A,B,C)3.1.3滤波器的零极点增益模型零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子和分母进行分解因式处理,以获得系统的零极点表示形式,对单输入单输出系统来说,可以简单地将其零极点模型写成:Gs=i=1式中zi,i=l,2,⋯.m和pi,i=1,2,⋯,n分别称为系统的零点和极点,它们既可以为实数也可以为复数,而K称为系统的增益。这样滤波器就可以简记[Z,P,K],为了保证滤波器的稳定,系统的所有极点都位于左半S平面。如果稳定系统所有的零点都位于左半3.1.4滤波器数学模型之间的相互转换几种滤波器的数学模型在不同场合可以取到各自不同的优势效果,所以它们之间的相互转换显得十分重要。在线性系统理论当中,几种模型之间的转换有着成熟经典的方法。MATLAB的控制系统工具箱提供了几个函数可以方便地实现模型的转换。(1)状态方程模型到零极点增益模型的转换状态方程为:x(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)(3-12)转换的公式为:Hs=CsIMATLBA为实现状态方程模型向零极点模型的转换提供了以下函数:[Z,P,K]=ss2zp(A,B,C,D,iu)该函数用来实现滤波器的状态方程模型到零极点模型的转换。其中A,B,C,D分别表示系统状态方程模型的各个矩阵;Z,P,K分别表示系统的零、极点和增益矩阵。Iu表示要求的输入序号,如果系统为单输入系统,则有iu=l。(2)零极点增益模型到状态方程模型的转换[A,B,C,D]=zp2ss(Z,P,K)该函数用来实现滤波器零极点增益模型到状态方程模型的转换,其中(A,B,C,D)为状态方程模型,Z,P,K分别表示系统的零、极点和增益矩阵。(3)传递函数模型到零极点模型的转换零极点增益模型:H(s)=Ks+传递函数模型:Hs=num(s)[Z,P,K]=tf2zp(num,den)该函数用来实现滤波器传递函数模型到零极点增益模型的转换。其中num表示传递函数分子的多项式系数,den表示传递函数分母的多项式系数。(4)零极点增益模型到传递函数模型的转换[num,den]=zp2tf(Z,P,K)瑁来实现滤波器零极点模型到传递函数模型的转换。(5)状态方程模型到传递函数模型的转换[num。den]=ss2rf(A,B,C,D,iu)用来实现滤波器状态模型到传递函数模型的转换。(6)传递函数模型到状态方程模型的转换[A,B,C,D]=tf2ss(num,den)用来实现滤波器传递函数模型到状态模型的转换。3.2IIR滤波器的MATLAB辅助设计IIR数字滤波器设计借助模拟滤波器原型,再将模拟滤波器转换成数字滤波器。这些过程已经成为一整套成熟的设计程序。模拟滤波设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询。因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大的方便。具体在MATI_AB中设计IIR数字滤波器的设计步骤如下:按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶数N和固有频率w。;运用最小阶数N产生模拟低通滤波器原型;运用固有频率把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器;运用冲激响应不变发或双线性不变法把模拟滤波器转换成数字滤波器。MATLAB工具箱提供了几种模拟滤波器的原型产生函数,Bessel低通模拟滤波器原型,Butterworth滤波器原型,Chebyshev(I型、II型)滤波器原型、椭圆滤波器原型等不同的模拟滤波器原型;模拟低通滤波器原型向低通、高通、带通、带阻的转变函数:从模拟滤波器向数字滤波器转换的双线性变换法和冲激响应不变法等方法;模拟IIR数字滤波器阶数选择函数以及数字滤波器直接设计函数等等。另外,MAT信号处理工具箱提供了几个直接设计IIR数字滤波器的函数。这一整套设计函数给在MATLAB中设计IIR数字滤波器带来了极大的方便3.2.1低通模拟滤波器原形在模拟滤波器的设计当中,首先要给定模拟滤波器的技术指标a1,a2,Ω1,Ω2;其中aGS=d0+使其对数幅频响应10lg|G(jΩ)|2在Ω1,Ω2,处达到a1,,a2的要求。aaΩ=10lgX(jΩ)或者G(jΩ)2=10幅平方特性函数G(jΩ)2在模拟滤波器的设计中起着十分重要的作用。人们设计出了几种不同的G(jΩ)2它们代表不同的模拟滤波器的类型。在MATIAB当中也相应的设计出这几种模拟滤波器的原型。最常见的几种模拟滤波器的原型包括:巴特沃思(ButtcrwoRh)滤波器、3.2.2低通、高通、带通及带阻滤波器的设计模拟低通、高通、带通及带阻滤波器主要的设计方法是先将要设计的滤波器器的技术指标通过某种频率转换关系转换成模拟低通滤波器的技术指标,并根据这些技术指标设计出低通滤波器的转移函数,然后再根据频率转换关系变成所要设计的滤波器的转移函数。MAnAB的信号处理工具箱为是实现从低通滤波器向低通、高通、带通和带阻滤波器的转换提供了方便的函数(1)从低通向低通的转变[AT,BT,CT,DT]=Ip2lp(A,B,C,D,wn)和[numt,dent]=lp21p(num,den,wn)这两个函数把模拟低通滤波器原型转换成截止频率为wn的低通滤波器(2)从低通到高通的转换[AT,BT,CT,DT]=lp2hp(A,B,C,D,wo)该函数把原来的低通滤波器原形(A,B,C,D)转换成截止频率为WO的高通滤波器原形(AT,BT,CT,DT)。[numt,dent]=lp2hp(hum,den,wo)这个函数与上面的函数具有相同的功能,只是在滤波器的表示方式上有所差别。(3)从低通到带通的转变[AT,BT,CT,DT]=lp2bp(A,B,C,D,wo,Bw)和[numt,dent]=lp2bp(num,den,wo)这两个函数把原来的模拟低通滤波器原型转换成中心频率为WO,带宽为Bw的带通滤波器。(4)从低通到带阻的转变[AT,BT,CT,DT]=lp2bs(A,B,C,D,wo,Bw)和[numt,dent]=lp2bs(num,den,wo)这两个函数把原来的模拟低通滤波器原型转换成中心频率为WO,带宽为Bw的带通滤波器。3.2.3IIR数字滤波器阶数选择滤波器阶数选择在整个滤波器的实际中占有十分重要的地位和作用。在实际滤波器的设计和使用当中,我们经常面I临着阶数选择的问题。根据实际需要选择合适的滤波器阶数,在MATLAB中针对不同类型的滤波器提供了阶数选择函数。(1)Butterworth滤波器阶数选择函数[N,Wn]=Buttord(Wp,Ws,Rp,Rs)该函数返回符合要求性质的滤波器最小阶数N以及Butterworth滤波器固有频率Wn。设计的要求是在带通内衰减不超过RP。在阻带内的衰减不小于Rs,通带和阻带的截止频率分别是Wp,Ws,它们的归~化频率,范围是[0,1],对应π弧度。(2)ChebyshevI型滤波器阶数选择函数[N·Wn]=cheblord(Wp,Ws,Rp,Rs)该函数返回符合要求性质的滤波器最小阶数N以及ChebyshevI型滤波嚣固有频率Wn。设计的要求是在通带内的衰减不超过Rp,在阻带内的衰减不超过Rs,通带和阻带的截止频率分别是Wp,Ws,它们都是归一化的频率值。[N,Wn]=cheblord(Wp,Ws,Rp,Rs,‘s’)该函数返回模拟滤波器的最小阶数N和ChebyshevI型滤波器固有频率Wn。其中的Wp,Ws是以弧度为单位。(3)ChebyshevlI型滤波器阶数选择函数[N,Wn]=cheb20rd(Wp,Ws,Rp,Rs)该函数返回符合要求性质的滤波器最小阶数N以及ChebyshevlI型滤波器固有频率Wn。设计的要求是在通带内的衰减不超过Rp,在阻带内的衰减不超过Rs,通带和阻带的截止频率分别是Wp,Ws,它们都是归一化的频率值。[N,Wn]=cheb20rd(Wp,Ws,Rp,Rs,‘s’)该函数返回模拟滤波器的最小阶数N和ChebyshevII型滤波器固有频率Wn。其中的Wp,Ws是以弧度为单位。(4)椭圆滤波器阶数选择函数[N,Wn]=ellipord(Wp,Ws,Rp,Rs)该函数返回符合要求性质的滤波器最小阶数N以及椭圆型滤波器固有频率Wn。设计的要求是在通带内的衰减不超过Rp,在阻带内的衰减不超过Rs,通带和阻带的截止频率分别是Wp,Ws,它们都是归一化的频率值。[N,wnl=elHpord(Wp,Ws,Rp,Rs,‘s’)该函数返回模拟滤波器的最小阶数N和椭圆型滤波器固有频率wn。其中的Wp,Ws是以弧度为单位。3.2.4模拟滤波器转换为数宇滤波器从模拟滤波器设计IlR数字滤波器就是要由列出的H。(曲进一步求得H(z)。归根结底是一个由S平面到Z平面的变换。从模拟滤波器映射变换成数字滤波器有四种方法:冲激响应不变法;双线性变换法;微分一差分变换法:匹配z交换法。后两种方法都有一定的局限性,工程上常使用前面两种方法。冲激响应不变法:冲激响应不变法的基本原理是从滤波器的冲激响应出发,对具有传递函数G(s)的模拟滤波器的冲激响应g(t),以周期T采样所得到的离散序列g(nT)作为数字滤波器的冲激响应。MATLAB信号处理工具箱为冲激响应不变发提供了函数impinvar(),这个函数用来实现从模拟到数字的转换。具体函数使用如下:[BZ,AZ]=impinvar(B,A,Fs)。该函数把具有[B,A]模拟滤波器传递函数模拟转换成采样频率为Fs的数字滤波的传递函数[BZ,AZ]。如果在函数中没有确定采样频率Fs时,函数默认为1Hz。双线性变换法:为了克服冲激响应不变发产生的频率混叠现象,凯寨(Kaiser)和戈尔登(Golden)建议用一种新的有效的变换,这就是双线性变换。双线性变换可以认为是基于对微分方程的积分,利用对积分的数值逼近得到的。MATLAB信号处理工具箱为实现双线性变换提供了函数bilinear()[zd,Pd,Kd]=bilinear(Z,P,K,Fs)把模拟滤波器的零点极点模型转换成数字滤波器的零点极点模型,其中Fs是采样频率。[numd,dend]=bilinear(hum,den,Fs)把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型,其中Fs是采样频率。[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs)把模拟滤波器的状态方程模型转换成数字滤波器的状态方程模型,其中Fs是采样频率。3.3FIR滤波器的MATLAB辅助设计FIR数字滤波器的设计方法主要有Fourier级数展开设计方法、窗函数法、频率采样法等。(1)Fourier级数展开法设所希望的数字滤波器的频率响应是Hd(ejω),它是频域的周期函数,周期为Hdejω=n=-∞式中hd(n)是Fourier系数,当然老也是一个单位冲激响应序列。由Fourierhd(n)=一旦能从所希望的Hd(eHdz=n=-∞∞最终可以得到:h(n)=有限项Fourier级数是在最d,--乘意义上对理想滤波器的最佳逼近,M取值越大,逼近误差越小。(2)窗函数法窗函数法设计的出发点是从时域开始,用窗函数截取理想的对于所期望的hd(n)的h(n),以有限长h(n)近似理想的hd(n),这样得到的频率响(3)频率采样法频率取样设计是从频域出发,因为有限长序列h(n)又可用其离散傅立叶变换H(k)来唯一确定,H(k)与所要求的FIR滤波器系数函数Hdz之间存在着频率取样关系。即Hdz在z平面单位圆上按角度等分的取样值等于Hdk的各相应值,就以次Hdk值作为实际FIR数字滤波器频率特性的取样值H(k),或者说3.3.2MATAB中FIR数字滤波器相关函数用窗函数设计方法FIR滤波器furl(),语法格式为B=firl(N,Wn),设计一个N阶的FIR数字滤波器,返回的向量B为滤波器的系数。基于窗函数的任意响应的FIR数字滤波器的设计fir2(),语法格式为B=fir2(N,F,M)设计一个N阶的FIR数字滤波器,其频率响应由向量F和M指定,滤波器的系数返回在向量中。向量F和M指定滤波器的采样点的频率及其幅值。用有限制条件的最小二乘逼近法设计线性相位FIR滤波器fircls(),语法格式为B=fircls(N,F,A,UP,LP)返回的是一个长度为N+I的线性相位FIR滤波器,其期望逼近的频率响应为分段恒定的,由向量F和A指定,各段幅度波动的上下限由向量UP和LO给定,A中的各个元素分别为各恒定段的频率响应的理想幅值。用有限制条件的最小二乘逼近法设计低通和高通FIR滤波器firclsl(),语法格式为B=firclsl(N,WO,DP,DS)返回的是一个长度为N+1的线性相位低通FIR滤波器,其截止频率为WO,通带偏离1.0的最大值为DP,阻带偏离0的最大值为DS。用最小二乘逼近法设计的线性相位FIR数字滤波器firls(),语法格式为B=firls(N,F,A)返回一个长度为N+1的线性相位FIR数字滤波器,期望的频率响应由向量F和A确定,用这种方法设计的滤波器是最佳的最二乘逼近。升余弦FIR滤波器设计firrcos(),语法格式为B=firrcos(N,F0,DF,Fs)返回一个N阶低通线性有着升余弦过度频带的FIR滤波器。插值用FIR滤波器设计intfilt(),语法格式为B=intfilt(R,L,ALPHA)设计一线性相位FIR滤波器,用于插值时在插入零后对信号的平滑。FIR的阶数估计(低通、高通、带通、多频带)kaiserord,语法格式为[N,Wn,BETA,TYPE]=kaiserord(F,A,DEV,Fs)返回的是在函数B=fir(N,Wn,TYPE,kaiser(N+1,BETA),‘noscale’)中用到的参数N。Parks.McClellan优化等纹波FIR滤波器的设计remez(),语法格式为B=remez(N,F,A)返回一个长度为N+I的线性相位FIR滤波器,滤波器的理想频率响应由F和A描述,这种滤波器是按最大绝对误差最小化的逼近准则设计的。FIR阶数估计(低通、高通、带遁、多频带)renezord(),语法格式为[N,Fo,Ao,W]=remezord(F,A,DEV,FS)返回调用remez()函数需要给定的输入参数即阶数N,归一化频带边缘Fo,频带幅值Ao和权值W复数非线性相位等纹波FIR滤波器的设计cremez(),语法格式为B=cremez(N,F,‘fresp’,W)返回一个对理想频率响应最佳逼近的N+1阶FIR滤波器Bartlett窗函数bartleet(),语法格式为bartlett(N)返回一N点Bartlett窗,结果为列向量。Blackman窗函数blackman(),语法格式为blackman(N)返回一N点Blackman窗,结果为列向量。矩形窗函数boxcar(),语法格式为boxcar(N)返回一N点矩形窗,结果为列向量。Hamming窗函数hamming(),语法格式为hamming(N)返回一N点Hamming窗,结果为列向量。Hanning窗函数harming(),语法格式为harming(N)返回一N点Hanning窗,结果为列向量。三角窗函数triang(),语法格式为triang(N)返回一N点三角窗,结果为列向量。Chebyshev窗函数chebwin(),语法格式为chebwin(N)返回一N点Chebyshev窗,其纹波为R(dB),N必须为奇数。如果N为偶数,则返回的是一N+1点Chebyshev窗。Kaiser窗函数kaiser(),语法格式为kaiser(N,BETA)返回的是一N点的Kaiser窗。3.4MATLAB软件数字滤波器仿真结果利用MATLAB软件提供的相关函数设计了8种数字滤波器:IIR低通滤波器、IIR高通滤波器、IIR带通滤波器、FIR带阻滤波器、FIR低通滤波器、FIR高通滤波器、FIR带通滤波器、FIR带阻滤波器。IIR低通数字滤波器:截止频率为1500HZ,阻带的起始频率为2500HZ,通带内最大衰减为O.5,阻带内最小衰减为60,采样频率为16000HZ。程序代码和仿真结果如下:wp=1500;ws=2500;rp=0.5;rs=60;fs=16000;[N,Wn]=buttord(wp/(fs/2),ws/(fs/2),rp,rs,'z');[num,den]=butter(N,Wn);[H,w]=freqz(num,den);plot(w*fs/(2*pi),abs(H));grid;xlabel('频率/Hz');ylabel('幅值');图3-1IIR低通数字滤波器IIR高通数字滤波器:导通频率为4500HZ,阻带的起始频率为3500HZ,通带内最大衰减为1,阻带内最小衰减为40,采样频率为16000HZ。程序代码和仿真结果如下:clc;wp=3500;ws=4500;rp=1;rs=40;fs=16000;[N,Wn]=cheb1ord(wp/(fs/2),ws/(fs/2),rp,rs,'z');[num,den]=cheby1(N,rp,Wn,'high');[H,w]=freqz(num,den);plot(w*fs/(2*pi),abs(H));grid;xlabel('频率/Hz');ylabel('幅值');3-2IIR高通数字滤波器IIR带通数字滤波器:通带的带宽为2500HZ~3500Hz,阻带的起始频率分别为1500HZ和4500HZ,通带内最大衰减为O.5,阻带内最小衰减为60,采样频率为16000HZ。程序代码和仿真结果如下:wp1=2500;wp2=3500;ws1=1500;ws2=4500;rp=0.5;rs=60;fs=16000;wp=[wp1,wp2];ws=[ws1,ws2];[N,Wn]=cheb1ord(wp/(fs/2),ws/(fs/2),rp,rs,'z');[num,den]=cheby1(N,rp,Wn);[H,w]=freqz(num,den);plot(w*fs/(2*pi),abs(H));grid;xlabel('频率/Hz');ylabel('幅值');3-3IIR带通数字滤波器IIR带阻数字滤波器:阻带频率为2500HZ-3500HZ,通带起始频率分别为1500HZ和4500HZ,通带内最大衰减为0.1,阻带内最小衰减为50,采样频率为1600CHZ,,程序代码和仿真结果如下:wp1=1500;wp2=4500;ws1=2500;ws2=3500;rp=0.1;rs=50;fs=16000;wp=[wp1,wp2];ws=[ws1,ws2];[N,Wn]=ellipord(wp/(fs/2),ws/(fs/2),rp,rs,'z');[num,den]=ellip(N,rp,rs,Wn,'stop');[H,w]=freqz(num,den);plot(w*fs/(2*pi),abs(H));grid;xlabel('频率/Hz');ylabel('幅值');3-4IIR带阻数字滤波器FIR低通数字滤波器:截止频率为1500Hz,阻带的起始频率为2500HZ,通带纹波的最大允许值为0.06,阻带纹波的最大允许值为0.1,采样频率为16000HZ。程序代码和仿真结果如下:fs=16000;[n,fo,mo,w]=remezord([15002500],[10],[0.060.1],16000);b=remez(n,fo,mo,w);[h,f]=freqz(b);plot(f*fs/(2*pi),abs(h));xlabel('频率/Hz');ylabel('幅值');3-5FIR低通数字滤波器FIR高通数字滤波器:导通频率为4500HZ,阻带的起始频率为3500HZ,通带纹波的最大允许值为O.1,阻带纹波的最大允许值为O.01,采样频率为16000HZ。程序代码和仿真结果如下:fs=16000;[n,fo,mo,w]=rcmezord([35004500],[Ol],)O.1O.01],16000);b=remez(n,fo,mo,w);[h,f]=freqz(b);plot(f+Fs/(24pi),abs(h));xlabel('频率/Hz’);ylabel(’幅值’);3-6FIR高通数字滤波器FIR带通数字滤波器:通带的带宽为2500HZ-3500HZ,阻带的起始频率分别为1500HZ和4500HZ,通带纹波的最大允许值为0.1,阻带纹波的最大允许值为O.01,采样频率为16000HZ。程序代码和仿真结果如下:fs=16000;[n,fo,mo,w]=remezord([1500250035004500],[010],[0.010.10.01],16000);b=remez(n,fo,mo,w);[h,f]=freqz(b);plot(f*fs/(2*pi),abs(h));xlabel('频率/Hz');ylabel('幅值');3-7FIR带通数字滤波器FIR带阻数字滤波器:阻带频率为2500HZ-3500HZ,通带起始频率分FIR带阻数字滤波器:阻带频率为2500HZ-3500HZ,通带起始频率分别为1500HZ和4500HZ,通带纹波的最大允许值为0.1,阻带纹波的最大允许值为O.01,采样频率为16000HZ。程序代码和仿真结果如下:fs=16000;[n,fo,mo,w]=remezord([1500250035004500],[101],[0.010.10.01],16000);b=remez(n,fo,mo,w);[h,f]=freqz(b);plot(f*fs/(2*pi),abs(h));xlabel('频率/Hz');ylabel('幅值'3-8FIR带阻数字滤波器第4章 数字滤波器的DSP实现数字信号处理器(DigitalSignalProcessor)是一种适合对数字信号进行高速实时处理的专用处理器,其主要用来实时快速地实现各种数字信号处理算法。在当今的数字化时代,DSP己成为通信设备、计算机和其它电子产品的基础器件。数字信号处理器与数字信号处理有着密不可分的关系,我们通常说的“DSP"可以指数字信号处理(DigitalSignalProcessing),也可以代表数字信号处理器(DigitalSignalProcessor)在本文里均指数字信号处理器。数字信号处理是一门包括了许多学科并应用于很多领域的学科,是指利用计算机或是专用处理设备,以数字形式对信号进行分析、采集、合成、变换、滤波、估值、压缩、识别等处理,得到符合要求的信号形式。数字信号处理器是用于处理数字信号的器件,因此它是伴随着数字信号处理才产生的。DSP发展历程大致分为三个阶段:20世纪70年代理论先行,80年代产品普及和90年代的突飞猛进。在DSP出现之前数字信号处理只能依靠微处理器(MPU)来完成。但MPU较低的处理速度无法满足高速实时的要求。因此,直到20世纪70年代,有人才提出了DSP的理论和算法基础。随着大规模集成电路技术的发展,1982年世界上诞生了第一片DSP芯片。几年后,第二代基于CMOS工艺的DSP芯片应运而生。80年代后期,第三代DSP芯片问世。90年代DSP发展最快,相继出现了第四代和第五代DSP器件。经过20多年的发展,DSP产品的应用已扩大到人们的学习、工作和生活的各个方面,并逐渐成为电子产品更新换代的决定因素4.1DSP的基本特征本课题采用的是TMS320C55x系列的TMS320C5509DSP,具有改进的哈佛结构、硬件乘法器、流水线结构、高效特殊指令集等优点,使它的处理速度和容量大大提高,为数字滤波中的复杂算法的实现提供了硬件的保证(1)哈佛总线结构计算机的总线结构可分为两种。一种是冯·诺依曼结构,其特点是程序和数据共用一个存储空间。统一编址依靠指令计数器提供的地址来区分是指令数据还是地址。由于对数据和程序进行分时读写,执行速度慢。但是半导体工艺的飞速发展克服了这一缺陷,同时这一结构使计算机结构得到简化,并成为计算机发展的一个标准。但由于原理上的特点,这一结构并不适合进行具有高度实时要求的数字信号处理。哈佛结构与冯·诺依曼结构相比,其主要特点是程序和数据具有独立的存储空间,有着各自独立的程序总线和数据总线,大大地提高了数据处理能力,非常适合于实时数字信号处理。TI公司的DSP芯片的结构是改进的哈佛结构,内部采用三个并行的总线,程序读写总线(PAB)、读数据总线(DABI)、写数据总线(DAB2),每组总线连接不同的存储器空间,使程序存储器与数据存储器成为独立的两个存储空间,并且允许数据在程序存储器和数据存储器之间进行传递,这种结构允许取指令和取操作数并行进行,增加了器件的运算速度(2)硬件乘法器在通用的计算机上,算术逻辑单元(ALU)只能完成两个操作数的加、减及逻辑运算,而乘法(或除法)则是由加法和移位来实现。因此它们实现乘加运算就比较慢,而在数字滤波算法中需要大量的乘加运算,在TMS320C55XDSP中有一个硬件乘法器,可以在一个指令周期内完成一次乘法和一次加法运算,可以大大提高数字滤波系统的运算速度。(3)流水线结构TMS320C55xDSP采用四级流水线指令操作方式,减少了指令的执行时间,提高了处理器的吞吐量。任何处理器执行一条指令,总是要经过取指令、译码、读操作数和执行指令四个阶段,需要若干个机器周期才能完成。TMS320C55xDSP系列由于指令和操作数来自不同的空间,同一时刻,可以有四条指令的不同阶段在并行处理,尽管每条指令执行的时间仍然是几个机器周期,但由于指令的流水作业,实现了多条指令的并行执行(4)高效指令集数字信号处理运算的特点之一就是单一运算的重复执行,在通用的处理器中,一般采用软件的方法来解决,基本方法是采用循环控制或指令重复,循环控制除了在判断循环次数及操作转向上需要指令开销外,还会因DSP流水线的频繁中断而造成相当大的开销:指令重复的代价是增加了程序代码长度,占用更多的存储空间。而在TMS320C54xDSP中设置了硬件循环控制电路,提供了重复指令,实现零开销的循环控制。所有这些优点使得DSP非常适合来做数字滤波器的硬件电路。4.2TMS320C55xDSP的硬件结构TMS320C55xDSP其硬件构成的几个主要部分包括:总线结构、中央处理单元、内部存储器及片内外设等4.2.1总线结构TMS320C55x具有8条16位的总线,其中包括4条程序/数据总线和4条地址总线,各条总线的作用如下:(1)程序总线PB传输来自程序存储器的指令代码和立即数。(2)--条数据总线CB、DB和EB分别与不同的单元互相连接,如中央处理单元、数据地址产生逻辑DAGEN、程序地址产生逻辑、片内外设和数据存储器。其中,CB和DB传输从程序存储器读来的数据;EB传输待写入存储器的数据。(3)PAB,CAB,DAB和EAB这4条地址总线传输指令执行所需要的地址。4.2.2中央处理单元TMS320C55x的中央处理单元可以说是DSP的核心,主要包含以下几个部分:一个算术逻辑单元,两个累加器,定标移位器,乘法IDI法单元,比较选择存储单元(cssu)和CPU状态和控制寄存器等。(1)算术逻辑单元(ALU)TMS320C55x利用一个40位的算术逻辑单元和两个40位的累加器来执行二进制补码算术运算,ALU也可以进行布尔运算。还可以把这个40位的ALU看作为两个16位的ALU,来同时执行两个16位的操作。(2)CPU状态和控制寄存器TMS320C54x共有三个控制和状态寄存器,对CPU的控制是通过CPU状态和控制寄存器来完成的。分别为状态寄存器0(ST0)、状态寄存器1(STl)和处理器模式状态寄存(PMST)DSP不同条件和模式下的状态都包含ST0和STl,PMST包含存储器设置状态和控制信息。由于这些寄存器是存储器映像,所以可以像对数据存储器操作那样对它们进行读出和写入。在调用子程序或中断服务子程序时,可以将它们保存下来,返回时再恢复。(3)累加器累加器A和B存储来自ALU或乘法/Dil法单元的输出;同时,它们也可以为ALU提供另一个输入;累加器A还呵以为乘法器IDn法器单元提供输入。每个累加器可以分为保护位(位39~位32)、高位字(位31~位16)和低位字(位15~位0)。系统提供的指令可以存储保护位、高位字和低位字;累加器可以向数据存储器读出或写入32位字:而且任一累加器可以作为另一个累加器的暂时存储器。(4)定标移位器定标移位器的40位的输入来自累加器或数据存储器(通过DB或CB),其40位的输出则通过EB传至ALU或数据存储器。定标移位器可以对输入的数据进行0到31位的左移和0到16位的右移,具体移位数由指令中的移位字段、状态寄存器STl中的移位数字段ASM或暂存寄存器T来提供。定标移位器和指数编码器可以在单周期内对累加器中的数进行归一化操作。输出的低位用零填充,高位则要看状态寄存器STl中的符号扩展模式位SXM来决定是用零填充还是进行符号扩展。另外,定标移位器还有一些功能可以使处理器执行数字定标、位提取、扩展算术运算和防溢出操作等。(5)乘法器/加法器单元TMS320C55x的乘法器iDrl法器单元包含一个17X17位的硬件乘法器,一个40位的加法器,有符号输入/无符号输入控制逻辑,小数控制逻辑,一个零检测器,一个圆整器,溢出/饱和逻辑和一个16位的暂存寄存器T。乘法器有两个输入一个输入来自暂存寄存器T,或一个数据存储器操作数,或者是累加器A;另一个输入来自程序存储器,或数据存储器,或累加器A,或者是一个立即数。这个乘法器可以使得TMS320C55x器件进行高效的卷积、相关和滤波操作等。此外,乘法器还可以和ALU一起在单个指令周期内执行乘法/累加(MAC)计算,而对ALU的操作是并行的。(6)比较选择存储单元CSSU比较、选择和存储单元可以对累加器的高位字和低位字进行比较,使状态寄存器S‵I′O中的测试/控制标志位(TC)和转换寄存器TRN保持转换记录状态,并将累加器中的最大的数传送至数据存储器。当选择了合适的片内硬件后,CSSU还可以加速维特}(Viterbi)蝶形运算。4.2.3内部存储器TMS320C55x共有192K堆16bit的寻址空间。这些空间被分为3个特定的存储段:64K*16bit的程序存储空间,64K*16bit的数据存储空间,64K*16bit的加空间。在任何一个空间内,RAM,ROM,EPROM,EEPROM或存储器映像外设既可以驻留在片内,也可以驻留在片外TMS320C55x具有较大的程序存储空间,它的程序空间可达8M字节,主要是通过附加的7根地址线来实现分页访问的;可以通过修改DSP的xPc(程序指针扩展寄存器)来指定需要访问的程序存储空间的页。一共可以访问128页,每页64K*16bit。程序存储空间包含待执行的指令和执行中需要使用的数据表格;数据存储空间包含程序指令所用到的数据:I/O空间主要用来接外围芯片,这些外围芯片和DSP一起完成特定的功能。可以在系统中给这些外围芯片分配不同的地址,DSP可以根据不同的地址来访问这些外设。如果内部存储器不够用时,I/O空间还可以作为DSP的外部数据存储器来用。TMS320C55x其片内存储器的种类主要有以下几种:双访问RAM(DARAM),单访问RAM(SARAM)和ROM。Ka_M(包括DARAM和SARAM)一般映射在数据空间,但也可以映射在程序空间;ROM映射在程序空间,但也可以部分地映射在数据空间。DARAM一般由若干块构成,由于每块DARAM在一个机器周期内可以被访问2次,中央处理单元和片内外设在一个周期内可以同时对其进行一次读和一次写操作根据需要,通过改变处理器状态标志寄存器(PMST)的三个位MP/MC、OVLY和DROM来灵活地改变存储器的配置。如,可以将ROM映射在程序存储空间或不映射在程序存储空间;将某段存储器映射在片内或片外;将RAM只映射在数据存储空间或既映射在数据存储空间又映射在程序存储空间等等。对于不同型号的DSP来说,这几个位所起的作用不完全相同。数据存储空间还有一块特殊的区域,OOH.80H。这块区域包含的是存储器映像寄存器,它包含了DSP中所有的寄存器,可以通过读这块存储器来了解各个寄存器的值,或者通过写这块存储器来改变寄存器的值。所以,必须注意的是,在编程时不要随便往这个区域存储数据,除非根据需要来改变相应寄存器的值,否则会导致程序运行的结果不正确4.2.4片内外设TMS320C55x的片内外设具有:(1)通用I/O引脚XF和BIOBIO是一个输入引脚,可以将外围器件的某些引脚接到BIO,DSP可以对它进行实时监视:XF是软件可控制的输出引脚,DSP可以用它作为外围器件的控制信号(2)硬件定时器硬件定时器是一个带4位预定标的16位定时电路。每过一个CLKOUT周期,定时器做减1操作。当计数减到0时,产生一个定时器中断。可以通过设置特定的位对定时器进行停止、重启、复位和禁止操作。(3)时钟发生器;时钟发生器由一个内部振荡器和一个锁相环电路组成。内部时钟发生器可以通过外接一晶振或直接接外部时钟源而工作。锁相环电路通过将外部频率乘以一个因子而产生内部CPU工作频率。这可以使得从外部较低的时钟频率而产生较高的CPU内部工作频率。(4)主机接EI(HPI)HPI是一个并行接口,它提供DSP和外部主处理器的接口。DSP和主处理器通过DSP的片内存储器交换信息,这块片内存储器既可以被DSP访问,也可以被主处理器访问。TMS320C54x具有8位增强型的主机接口(5)软件可编程等待状态发生器当DSP与慢速设备接口时,就可能要用到软件可编程等待状态发生器。它可以将DSP的外部总线周期扩展到7个或14个,这就使得DSP可以轻松地和各种慢速设备接口。(6)可编程存储体切换逻辑当访问过程跨越程序存储器或数据存储器存储体的边界时,可编程存储器组切换逻辑会自动插入一个周期:当在存储操作过程中,由程序存储器转向数据存储器时,也会插入一个周期。这个额外的周期通过在其他器件开始驱动总线前允许存储器释放总线来避免总线竞争。转换的存储体的大小由存储体转换控制寄存器(BSCR)来确定。4.3DSP系统的设计与开发DSP系统的开发是一个复杂的过程,在系统的设计和调试中不但需要数字信号处理方面的理论知识,而且还要熟悉掌握各种DSP芯片、外围硬件电路以及DSP开发工具等。4.3.1DSP系统的特点DSP系统是以数字信号处理为基础的,因此不但具有数字处理的全部优点而且还具有以下特点:(1)接121方便:DSP应用系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易得多。(2)编程方便:DSP应用系统中的可编程DSP芯片,能灵活方便地进行修改和升级。(3)稳定性好:DSP应用系统以数字处理为基础,受环境温度及噪声的影响较小、可靠性高,无器件老化现象。(4)精度高:16位数字系统可以达到10巧级的精度。(5)可重复性好:模拟系统的性能受元器件参数性能变化的影响比较大,而数字系统基本不受影响,因此数字系统便于测试、调试和大规模生产。(6)集成方便:DSP应用系统中的数字部件有高度的规范性,便于大规模集成。当然,数字信号处理也存在一些缺点。例如,对于简单信号处理任务,若采用DSP则使成本增加。DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。此外,DSP技术更新速度快,对于数学知识要求高,开发和测试工具还有待进一步完善。4.3.2DSP系统的设计流程一个DSP系统的设计过程大概要有以下几个步骤。1.根据系统的任务要求,确定系统处理精度要求、速度要求、实时性要求等性能指标。2.根据系统的要求进行高级语言的算法模拟,比如使用MATLAB等仿真工具,验证算法的可行性,得出最佳的处理方法。3.DSP的系统设计,主要分为硬件设计和软件设计。硬件设计是指根据系统要求选择合适的DSP芯片,然后设计相应的外围电路。软件设计主要是指根据系统的要求和选用的DSP芯片编写相应的程序。程序的编写可以使用汇编语言,汇编语言编写的程序效率高,但比较烦杂;也可采用C语言,DSP的C语言基本上是标准C语言,编写比较简单,但效率低。在实际系统开发时往往是两种语言结合编写,在算法运算量大的地方使用汇编语言,在运算量小的地方使用C语言,这样既能缩短软件的开发周期,提高程序的可读性和可移植性,又满足了系统的实时性要求。本文的设计采用汇编语言编写、设计软件程序。4.3.3DSP系统的开发工具CCS,即CodeComposerStudio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。它最初是由GODSP公司为TI的C6000系列DSP开发的。在TI收购了GODSP后,将CCS扩展到了其他系列。现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSP/BIOS功能只有C5000和C6000的CCS中才提供。以前的DSP软件开发都是在一个分散的开发环境下进行,程序的编写、代码的生成以及调试等都是要通过命令来完成,类似于以前的DOS,十分烦杂。而CCS的出现是DSP开发软件的一次革命性的变化。CCS主要由代码生成工具、CCS集成开发环境、DSP/BIOS和API函数以及RTDX组成。(1)CCS主要特点:①集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。②集成代码生成工具,包括汇编器、优化的C编译器和连接器等。③具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。④支持多片DSP联合调试。⑤断点工具,支持硬件断点、数据空间读/写断点、条件断点等。⑥探针工具,用于进行算法仿真,数据监视等。⑦剖析工具,用于评估代码执行的时间。⑧数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可眇自动刷新。⑨提供GEI二工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参牧。(2)DSP/BIOS和API函数以及RTDX插件DSP/BIOS(BasicInputOutputSystem)和APl(ApplicationProgramInterface)函数为CCS的主要插件之一。DSP/B]OS可以看作是一个准实时操作系统,支持TIDSP芯片的各种实时操作系统都是以DSP/BIOS作为底层软件,为嵌入式应用提供基本的运行服务。并且,它还能实时获取目标机的信息,并将其传递给主机上的BIOScope工具,对应用程序进行实时分析。RTDX(RealTimeDataExchange)插件是CCS中另一个十分重要的插件。实时数据交换技术为CCS提供了一个实时、连续的可视环境,开发人员可以看到DSP应用程序工作的真实过程。RTDX允许系统开发者在不停止运行目标应用程序的情况下在计算机和DSP芯片之间传输数据,同时还可以在主机上利用对象链接嵌/X.(OLE)技术分析和观察数据。RTDX可以在DSP/BIOS中使甩,也可以脱离DSP/BIOS使用。由于CCS中的Simulator不支持RTDX,所以必须在连接有硬件仿真器或目标板的Emulator下使用4.4FIR滤波器的DSP实现DSP的实现过程主要包括:对MATLAB设计的系数进行量化、在CCS环境下进行汇编语言编程调试和程序的下载。CCS环境中的工程文件如图4——1所示图4-1CCS工作环境4.4.1FIR数字滤波器原理及流程图通带边缘频率10kHz,阻带边缘频率22kHz,阻带衰减75dB,采样频率50kHz过渡带宽度=阻带边缘频率-通带边缘频率=22-10=12kHz采样频率:f1Ω理想低通滤波器脉冲响应:h1n=sinnΩ根据要求选择布莱克曼窗,窗函数长度为:N=5.98fs过渡带宽度选择N=25,窗函数为:wn=0.42+0.5滤波器脉冲响应为:hn=h1nw[n]h[n]=0|n|>12(4-5)根据上面计算,各式计算出h[n],然后将脉冲响应值移位为因果序列。完成的滤波器的差分方程为:y程序流程图如下:4-2FIR滤波器流程图4.4.2DSP程序即CCS仿真结果#include"myapp.h"#include"ICETEK-VC5509-EDU.h"#include"scancode.h"#include<math.h>#defineFIRNUMBER25#defineSIGNAL1F1000#defineSIGNAL2F4500#defineSAMPLEF10000#definePI3.1415926floatInputWave();floatFIR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《立定跳远》的教学反思
- 《快乐英语》第三册教案
- 体育场馆电缆网络顶管施工协议
- 城市绿化钻孔桩施工合同
- 环保产业园项目招投标资料
- 建筑工人休息室空调节能办法
- 公共交通枢纽防火门招投标资料
- 物业公司医疗保健人员合同模板
- 招投标合同变更法律风险
- 研发项目招投标实施细则
- 精神分裂症个案护理查房
- 智慧农业数字化产业园项目节能分析报告
- 设备维修保养流程优化与管控
- 丙纶纤维的纺丝工艺优化
- 小学生建筑科普小知识
- 一例“重度子痫前期”患者的个案护理
- 福特汽车无人驾驶汽车商业化运营方案
- (正式版)SHT 3224-2024 石油化工雨水监控及事故排水储存设施设计规范
- 2024年中考英语一般时态-一般现在时一般过去时一般将来时课件
- 2024江苏省南京市六校联考高三下学期英语试题及答案
- 天津市和平区益中学校2022-2023学年七年级上学期期中数学试卷【含答案】
评论
0/150
提交评论