收藏 分销(赏)

数字滤波器设计论文-电子技术等专业本科学位论文.doc

上传人:可**** 文档编号:9905880 上传时间:2025-04-12 格式:DOC 页数:28 大小:438KB
下载 相关 举报
数字滤波器设计论文-电子技术等专业本科学位论文.doc_第1页
第1页 / 共28页
数字滤波器设计论文-电子技术等专业本科学位论文.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述
第一章 数字滤波器概述 数字滤波器是指用有限精度算法实现的,完成信号滤波处理的离散时间线性非时变系统,其输入是一组由模拟信号取样和量化得到的数字量,其输出是经过变换的另一组数子量。数字滤波器具有高稳定性、高精度、灵活性大等突出特点。这章主要讲述了数字滤波器的基本概念、及数学建模,以便在后续章节中实现滤波算法做好准备[1]。 1.1数字滤波器的基本概念 滤波器是一种能使有用频率信号通过而同时抑制无用频率信号的电子装置,或者说是可以人为调整参数来满足给定要求的硬件或软件系统[1]。 滤波器也就是一个线性移不变离散系统,其基本输入输出关系为: (1-1) 其中h(n)为系统的单位冲激响应。 在Z域上,有: (1-2) 分析式(1.2)可知,只要分母多项式ai(i=1,2,…,n)中有一个不为零,滤波器的的内部就存在反馈环。这种内部有反馈环的滤波器称为递归型滤波器。相反,所有系数ai(i=1,2,…,n)都为零的滤波器称为非递归型滤波器由于非递归型滤波器的内部没有反馈环,所以这种滤波器总是稳定的。 从滤波器的单位冲激响应来看,滤波器可以分为IIR滤波器和FIR滤波器。由于IIR滤波器的传递函数存在0之外的极点,所以单位冲激响应是无限持续的。因而IIR滤波器与递归型滤波器是一致的。而FIR滤波器的传递函数不存在0之外的极点,所以,本质上FIR滤波器与非递归型滤波器是一致的。但是,如果稳定的递归型滤波器与非递归型滤波器级联后,其极点与零点相互抵消,使滤波器在0之外不存在极点,这种滤波器也是FIR滤波器[2]。这种情况下,由于滤波器内部存在反馈环,因而这种滤波器就成为递归型滤波器。频率采样滤波器就是这种结构的滤波器。 具有频率选择功能的数字滤波器按功能分类有低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器[3]。另外,在全频带幅频特性固定的滤波器称为全通滤波器,可用于改善滤波器的相频特性。 1.2 数字滤波器的频率特性 1.2.1幅频特性 设采样周期为T,令z=jwT,从z变换理论即可得到H(z)的频率特性,可表示为: (1-3) 图1-1 理想幅频特性 H(ejwT) 其中,| H(ejwT)|表示数字滤波器的幅频特性; ∠H(ejwT)、Ф(wT)表示相频特性[3]。另外,H(ejwT) 是数字滤波器的频率传递函数,它表示决定数字滤波器的幅 频特性与相频特性的频率特性。各种数字滤波器的理想幅频 特性示于图1-1。 1.2.2 相频特性 设计数字滤波器时,不仅要考虑它的幅频特性,相频特性也是需要考虑的重要问题。特别是在线性相位滤波器中,相位的延迟不会造成波形失真,所以在波形要求很高时,滤波器具有线性相位是非常重要的[4]。 我们知道,一般情况下要减小(增大)通带与阻带的波纹,会造成过渡带的截止特性变差(变好)。根据滤波器的使用目的,其重点是不一样的,在滤波器的阶次确定后,合理的折中方案是必要的。但是当幅频特性要求很高,不能得到满意结果时,不仅要采用更高阶次FIR滤波器,还必须考虑采用IIR滤波器。 1.3 数字滤波器的数学建模 任何线性时不变集总参数离散系统都可用下列数学形式之一来表述其输入输出关系,在时域中,滤波器的功能可以用差分方程(1.4)或卷积公式(1.5)来描述: (1-4) (1-5) 在变换域中可用系统传递函数(1.6)来表示: (1-6) 这三种方法是等价的,从任何一个都能推导出其他两个[5]。即使用同一类表示方法。也存在着许多等价的算法结构。不同的算法会影响系统的某些实际性能。滤波器的工程实现要用计算机的硬件或软件帮助完成,这需要考虑许多的问题: (1)计算的效率,即完成整个滤波所需要的乘法和加法次数; (2)需要的存储量; (3)滤波器系数的量化影响; (4)运算中的舍入和截断误差、饱和和溢出。 不同的滤波器结构可以实现同样的传递函数,但不同的算法在满足上述的要求方面是有差别的,有的差别还很大,改变计算结构对提高计算效率和节省存储量能起很大的作用。 1.4本章小结 本章主要讨论了数字滤波器的一些基本概念。数字滤波器按单位冲激响应可以分为FIR和IIR滤波器,按频率选择功能的数字滤波器按功能分类有低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器。数字滤波的作用是滤除信号中某一部分频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的频率相应相乘。从时域来看,就好似输入信号与滤波器的冲激相应作卷积和。数字滤波器具有幅度特性和相位特性。 第二章 数字滤波器的设计准则及基本步骤 上一章主要讨论的是数字滤波器的数学表示及一些特性和分类的问题,并没有解决如何去设计一个数字滤波器。众所周知,计算机或DSP芯片处理的是数字信号,那么对于一个数字滤波器,要知道它设计准则。在这章主要讨论数字滤波器的设计准则和基本步骤。 2.1 数字滤波器的设计准则 滤波器设计误差是滤波器的期望响应与实际响应之间的差别。在FIR滤波器设计中通常采用3种准则[6]。 (1)最小平方(LS)近似,它是期望滤波器与设计滤波器频率响应之间平方误差的平均值。 (2)切比雪夫(Chebjyshe)近似,它是频率响应指定区域内的最大误差。 (3)巴特沃思(Butterworth)近似,它是基于泰勒级数近似的期望响应近似。 大多数的有源滤波器设计算法都是以这3种近似法的一种和Parks— McCllan(最优)算法。频率采用快速,简单,但其对整体频率响应的控制最弱。傅立叶设计的频率响应中存在不合乎要求的震荡或过冲,可以使用窗口函数控制这些效应。加窗方法的重要优点在于其简单性,其主要缺点是缺少对通带和阻带纹波控制的灵活性。Parks-McCllan算法生成一个线性相位FIR滤波器,并使切比雪夫误差最小,但是如果不利用计算软件,其设计非常慢[6]。 2.2数字滤波器设计的基本步骤 2.2.1 指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点[7]: (1)只包含实数算法,不涉及复数运算; (2)不存在延迟失真,只有固定数量的延迟; (3)长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 2.2.2 逼近 确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。 2.2.3 性能分析和计算机仿真  上两步的结果是得到以差分方程或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。 一些FIR滤波器的设计方法可能比较简单,如傅立叶技术。但是,不存在对于所有滤波器特性都是最优的单一方法。滤波器系数可以通过一些合理的公式来生成。但是,采用最优方法来获得最优滤波器需要大量的计算。此外,在定点DSP处理器实现实时滤波器的主要问题就是有限精度和动态范围。分析有限长效应的理论过于复杂,不适与手工计算,所以通常依靠计算机软件来设计数字滤波器[7]。 2.3 本章小结 本章主要讨论了数字滤波器的设计准则,和设计数字滤波器的基本步骤。设计准则有最小平方(LS)近似、切比雪夫(Chebjyshe)近似、巴特沃思(Butterworth)近似,这三种方法各有优缺点,在工程实现时由于现在有了高效的滤波器设计软件包(如MATLAB)可供利用,所以Parks-McCllan算法被广泛应用于大多数应用中。设计一个数字滤波器时有一些基本的步骤,首先要按照实际需要,确定滤波器的性能指标,寻找一个满足预定性能要求的离散线性非时变系统,然后通过模拟,验证所设计的系统是否符合给定的性能指标。 第三章 滤波器的选择 上一章我们解决了两个问题,那就是数字滤波器的设计准则及基本步骤。滤波器包括模拟滤波器和数字滤波器。但在许多信号处理应用中,使用数字滤波器代替模拟滤波器是有利的。数字滤波器不仅具有高可靠性、高精度,而且它是用可编程的处理器实现的,因而容易改变滤波器的参数。在应用环境改变时,这个特性方便设计工程师升级或修改已有的滤波器特性。并且数字滤波器容易实现不同的幅度和相位频率特性指标,克服与模拟滤波器器件相关的电压漂移、温度漂移和噪声问题,因此这里选择使用数字滤波器。而数字滤波器的设计又分为FIR(有限长单位冲激响应)滤波器和IIR(无限长单位冲激响应)滤波器。在这一章中,就专门讨论滤波器的选择问题及FIR滤波器的定义和FIR的几种基本结构。 3.1 FIR与IIR滤波器的比较 从性能上说,IIR滤波器可用较低的阶数获得高的选择性,所用的存储单元少,计算量小,效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器要达到高的选择性,必须用较高的阶数。对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5~10倍,成本较高,信号延时也较大。如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样要大大增加滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位[1]。 从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移。这种情况有时会造成稳定性问题,甚至产生寄生振荡。相反,FIR滤波器只采用非递归结构,不论是在理论上还是在实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅立叶变换算法,在相同阶数的条件下,运算速度可以快的多[1]。 另外,也应看到,IIR滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通及带阻等,往往脱离不了模拟滤波器的格局。而FIR滤波器则要灵活的多,尤其是他易于适应某些特殊应用,如构成数字微分器或西尔波特变换器等,因而有更大的适应性和广阔的应用领域。 3.2 FIR滤波器的定义 根据上面的比较,在这次设计中我们选择的是FIR数字滤波器,所以我们只简单介绍FIR滤波器的结构。FIR网络结构特点是没有反馈支路,即没有环路,其单位脉冲响应是有限长的[8]。设单位脉冲响应h(n)长度为N,其系统函数H(z)和差分方程分别为 (3-1) (3-2) 其单位脉冲响应h(n)是有限长的,按照式(3-1)的Z反变换,h(n)表示为 (3-3) bn 0≤N≤n-1 0 其他 h(n)= 滤波器的阶数N-1。它的长度(等于系数的个数)为N。FIR 滤波器总是稳定的,同IIR结构相比而言,相对简单一些。而且,FIR滤波器可设计成具有线性相位,这是某些应用所希望的。 3.3 FIR滤波器的结构 3.3.1直接型 设N=5(即四阶FIR滤波器),按照H(Z)或者差分方程式画出的直接结 构图如图3-1所示,它可以用抽头延迟线实现[3]。则可以写出: (3-4) 图3-1直接型结构 x(n) y(n) z-1 z-1 z-1 z-1 z-1 b0 b1 b2 b3 b4 根据此信号流图可以直接写出方程式(3-4),而且不必写出联立方程了。 3.3.2级联型 将H(Z)进行因式分解,并将共轭成对的零点放在一起,形成一个系数对称为实数的二阶形式。这样级联型网络结构是由一阶或二阶实系数因式级联构成的,其中每一个因式都可以用直接型实现。设FIR网络系统函数H(Z)如式(3-5),要求画出H(Z)的直接型和级联型结构。 (3-5) 将H(Z)进行因式分解,得到: (3-6) 其级联型结构和直接型结构如图3-2所示。 a x(n) z-1 b z-1 z-1 d e c y(n) x(n) y(n) z-1 z-1 z-1 a1 a2 a3 a4 图3-2 H(Z)的直接型和级联型结构 级联型结构每个一阶因式控制一个零点,每个二阶因式控制一对共轭零点,因此调整零点位置比直接型方便,但H(Z)中的系数比直接型多,因而需要的乘法器多。在上例中直接型需要四个乘法器,而级联型则需要五个乘法器。分解的因式越多,需要的乘法器也越多。当H(Z)的阶次高于三阶时,不易分解,需要用Matlab协助。 3.3.3 线性相位形式 一般的,理想的低通滤波器具有线性相位,如(3-7)式所示。 (3-7) 其中β=0或±π/2,τ为时延的拍数。要得到线性相位,实际滤波器的脉冲响应序列应当具有对称性。利用这种对称性可以简化滤波器的结构。 线性相位结构在本质上仍然是直接形式,只是缩减了乘法计算量。因此,传递函数多项式的组成形式上,线性相位结构仍等于直接形式。 3.4本章小结 经过对FIR和IIR的比较得知:FIR滤波器可以得到严格的线性相位;FIR滤波器只采用非递归结构,有限精度的计算不会产生震荡;FIR滤波器可以采用FFT算法,在相同阶数下,运算速度可以快的多;IIR滤波器可以借助于模拟滤波器的成果;而设计FIR需要借助计算机辅助设计;FIR易于适用某些特殊应用。这里,选择的是FIR滤波器。FIR是没有反馈支路,即没有环路,其单位脉冲响应是有限长的。FIR的结构有直接型、接连型、转置型和线形相位型等结果,在实际中要根据不同的要求来选择不同的结构。 第四章 FIR滤波器的Matlab工具箱实现 本章介绍了设计滤波器的Matlab工具箱SPTool和FDATool,这两种数字信号处理工具箱都是一种图形用户界面,能够方便快捷的让我们设计自己的数字滤波器。这两种工具箱都能查看所设计滤波器的幅度响应、相位响应、群延迟、零点极点图、冲激响应和阶跃响应。 4.1 Matlab SPTool工具箱的FIR滤波器设计 4.1.1 SPTool工具箱简介 SPTool是一个图形环境,提供了一种用于信号查看、滤波器设计和频谱分析的多图形环境。它为信号处理工具箱中的很多函数提供了易于使用的界面,只需要操纵鼠标就可以观察、分析和打印数字信号,分析、实现和设计数字滤波器,以及频谱分析等[6]。 4.1.2用SPTool工具箱设计FIR滤波器 启动Matlab后在命令窗口输入SPTool回车就可以打开SPTool的主窗口。如图 4–1 所示,由SPTool的主窗口可以看出,SPTool有3个列表框:Signals列表框,Filters列表框和Spectra列表框,它们对应着SPTool工具中的4个功能模块[6]: (1)信号浏览器; (2)滤波器设计器; (3)滤波器观察器; (4)谱观察器; 图4-1 SPTool的主窗口 在用SPTool进行信号处理时,必须先载入数据或先设计好滤波器。按照不同的数据类型,数据载入可以分为信号数据载入、滤波器数据载入以及功率谱数据载入。 首先在Matlab工作空间创建信号数据。这里以低通为例,创建信号数据时的Gen_Signal.m文件如下[9] [10]: fs=1000; t=0:1/fs:1; x=sin(2*pi*5*t); xn=x+rand(size(t)); [B,A]=butter(20,0.6); plot(t,xn) 可以利用File菜单中的Import选项将其他信号、滤波器或频谱由Matlab工作区中导入到SPTool工作区内。如图4-2所示: 图4-2 导入信号 xn 图4-3 信号sig1 已经从工作区中选择数据xn导入到Signals列中,所导入的数据命名为sig1。这时单击OK按钮,将以此信号sig1更新原来的SPTool窗口。 选择Signals列中信号的名称,并单击列表下面的View按钮,就可以查看信号了。如图4-3给出了受干扰的正弦波sig1。 Signals Browser窗口允许查看、测试和分析时域信号的特定区域。它包括有水平和垂直标记、带有轨迹和范围的标记,并显示信号的波峰和波谷,用于测试和对比。 接下来的任务是设计一个FIR低通滤波器去滤除高频噪声分量。将滤波器导入到Matlab工作区中最简单的方法是单击 File|Import,并导入分子B和分母A系数,如图4-4所示。并单击View来查看所导入滤波器的特性。Filter Viewer窗口允许用户查看所设计滤波器的特性,包括滤波器的幅度响应、相位响应、群延迟、零点极点图、冲激响应和阶跃响应。 图4-4 导入分子分母系数 图4-5 Filter Designer窗口 SPTool工具箱中还可以根据自己定义的规格设计FIR和IIR滤波器,可以通过单击SPTool中Filters列之下的New按钮来完成这一操作。这里选择SPTool/Filters中的Edit,对输入信号进行滤波设计,将出现如图4-5所示设计的Filter Designer窗口,这里也允许自己去选择一个滤波器设计算法、滤波器类型和频率规格。最后通过单击SPTool窗口中的Apply按钮,可以选择所设计的滤波器或所导入的滤波器LSLp,并将其应用至输入信号sig3。如下图4-6所示: 图4-6 信号sig3 将出现一个新的窗口,他允许我们选择滤波器的结构,并指定输出信号的名称为sig3。由SPTool窗口中选择sig1和sig3,并单击Signal列下面的 View按钮,可以查看输入信号(见图4-11)和滤波后输出信号的时域图。如图4-7(a) 、(b)所示 (a)滤波前信号 (b)滤波后的信号 图4-7 从滤波前后波形对比,我们可以看出,高频分量被滤除掉了。 4.2 FIR滤波器的Matlab FDATool工具箱的简介 Matlab中包括一组用于设计、分析和实现FIR滤波器的函数。利用FDATool来为实际应用设计、分析和量化FIR滤波器,FDATool中整合了滤波器设计工具箱和信号处理工具箱。这一强大的工具将传统的命令行滤波器设计功能集成在一个图形窗口环境中。 4.2.1 滤波器设计与FDATool工具箱简介 在Matlab命令窗口中键入FDATool启动FDATool。FDATool打开默认设计模式,如图4-8所示。 图4-8 FDATool窗口 FDATool包含一个交互式GUI,它允许使用者指定以下滤波器设计参数[6]: (1) 滤波器类型可以为低通、高通、带通、带阻、多频器、微分器、Hibert转换器、任意幅度、任意相位、升余弦。 (2) 滤波器设计方法可以是用于FIR滤波器的等纹波、最小平方和加窗法。 (3) 滤波器阶数可由使用者指定,也可以是由滤波器设计方法确定的最小阶数。 (4) 窗口技术要求仅可用于采用傅立叶方法的FIR设计。其中共有16种窗口可供选择。 (5) 频率设计要求可以是采样频率(fs) 、通带截止频率或阻带截止频率。 (6) 幅度技术要求可以是通带纹波和阻带纹波,单位可以为线性单位或dB. 4.2.2 有限长单位冲激响应滤波器的指标 这里以一个具体例子为例利用FDATool设计FIR滤波器的过程。滤波器的技术要求给出如下: (1)应使用等纹波设计方法以最低阶数设计一个带通FIR滤波器。 (2)以Hz为单位的频率技术要求为Fstop1=800Hz, Fstop2=1 500Hz,Fpass1=1 000Hz,Fpass2=1 300Hz,采样频率Fs=8 000Hz。 (3)低阻与高阻带纹波的幅度技术要求分别为50dB(As1)和60dB(As2)。通带纹波限制为1dB(Ap)。 4.3 Matlab FDATool工具箱的FIR滤波器设计 有了带通滤波器的技术要求后,就可以进行Matlab软件设计了。首先打开MATLAB进入命令窗口,在命令窗口中敲入“FDATool”命令,然后回车,就进入了FDATool的默认设计模式如上图4-7所示。在FDATool的默认设计模式中有“Response Type”,可以从中选择“Lowpass”,“Bandpass”,“Highpass”等滤波器类型,这里以“Bandpass”为例。把技术指标填入相应的筐中,再点击“Design Filter”,设计的滤波器就如图4-9 Bandpass所示。 完成滤波器的设计之后,可以分析滤波器的特性。如图4-8所示,可以通过选择Analysis菜单中所列的方法或单击工具栏按钮来访问分析方法。从Analysis菜单中选择Magnitude Response,在右上窗口中显示幅度响应曲线,如图4-10所示,还可以选择Phase Response如图4-11所示: 图4-9 Bandpass 图4-10 Magnitude Response 图4-11 Phase Response Response FDATool还提供了给出滤波器特性的附加显示。这些曲线包括相位响应、群延迟、冲激响应、阶跃响应、极零图和滤波器系数。FIR滤波器的冲激响应显示所设计滤波器的系数。极零图显示极点和零点的位置。例如,相位响应和冲激响应分别显示于图4-11和图4-12中。相位响应显示的滤波器在通带内具有线性相位,这是FIR滤波器的一个重要特性。获得对称系数即可获得线性相位滤波器,如冲激响应中所示(图4-12) 图4-12 Impulse Response 已经利用FDATool根据给定技术要求设计了一个FIR滤波器。滤波器系数以双精度浮点格式表示,需要64位字长。需要将这些系数量化为定点数(14位或32位),以便在定点DSP处理器上实现。如图4-13所示: 图4-13 量化窗口 在Analysis菜单中选择Filter Coefficents选项可以查看量化系数。在图 图4-14 Filter Coefficients 图4-15 Generate C Header 4-14 Filter Coefficients 中可以显示以格式Q.16格式表示的量化系数。可以在列表的最左列显示符号+、-和0。符号+表示量化系数向+∞溢出,符号-表示量化系数向-∞溢出,符号0标志着系数已经被量化为零[6]。 系数量化后,在Filter Design & Analysis Tool界面下,单击菜单中的Targets的下拉菜单中的Generate C Header,如图4-15所示,以此可以完成导出过程。滤波器系数存储在长度为BL的数组B中。然后进入Generate C Header界面,选择Export as为signed 16-bit integer,然后单击按纽Generate,将所得到的文件进行保存,在该文件中就可以得到一组16进制有符号数据,这组数据就是后面DSP实现中编程所要用到的滤波器参数。所生成的滤波系数如下(68阶): .word -93, 21, 130, 194, 104, -117, -299, -257, 15 .word 305, 360, 136, -154, -251, -127, -3, -76, -232 .word -131, 369, 895, 783, -223, -1490, -1843, -621, 1498 .word 2813, 1988, -635, -3078, -3274, -869, 2339, 3802, 2339 .word -869, -3274, -3078, -635, 1988, 2813, 1498, -621, -1843 .word -1490, -223, 783, 895, 369, -131, -232, -76, -3 .word -127, -251, -154, 136, 360, 305, 15, -257, -299 .word -117, 104, 194, 130, 21, -93 从这组滤波器数据我们可以看出,这是一组对称的数据. 4.4本章小结 SPTool和FDATool工具箱都是一种图形用户界面,能够方便快捷的设计自己的数字滤波器。这两种工具箱都能查看所设计滤波器的幅度响应、相位响应、群延迟、零点极点图、冲激响应和阶跃响应。为设计数字滤波器提供了方便,为后面的DSP硬件实现提供了快捷的方法。 第五章 FIR滤波器的DSP实现 本章采用上面MATLAB仿真得到的滤波系数,用循环寻址的方法,使用C54X汇编语言来实现FIR滤波器,并基于Code Composer Studio开发平台进行的滤波运算。输入数据通过开发系统File I/O功能完成待处理数据的输入,并将输入数据送入输入数据Buffer,运算结果也输出到输出Buffer中,通过开发系统的相应图形功能加以显示。 5.1 FIR DSP芯片内的循环寻址 循环寻址(circular addressing)是DSP中经常用到的一种寻址方式。该寻址方法可以对一块特定存储区实现循环的操作。可以把循环寻址理解为实现一个滑动窗,新数据引入后将覆盖老的数据,使得该窗中包含了需处理的最新数据。在数字信号处理中的FIR、卷积等运算中,循环寻址具有极其重要的意义[11]。 在TI的DSP中,循环寻址通过如下方法实现[12]。 (1)设定BK(寄存器块大小)值,以确定循环寻址缓冲区的大小,也可将它看作是循环的周期。 (2)设定缓冲区的底部地址。必须注意:其低N位为零,其中N为满足式(4-3)的最小N值。 (4-3) (3) 用辅助寄存器间接寻址循环缓冲区。 5.2 带通FIR滤波器DSP硬件实现 先准备好实验箱,打开CCS软件,连接好USB接口,设置DSP工作在MP方式。设置Code Composer Studio为Emulator 方式。新建一个工程,加载程序,然后编译并下载程序到定点DSP处理器上。在接着打开观察窗口:选择菜单“View”、“Graph”、“Time/Frequency…”进行如下图5-1设置,点击“OK”后,就打开了变量input的显示图形窗。 同上操作,选择菜单“View”、“Graph”、“Time/Frequency…”进行如下图5-2设置,点击“OK”后,就打开了变量output的显示图形窗。然后在程序中设置断点就可以了。 图5-2 output 图5-1 input 断点设置好 后运行并观察结果:(1)选择“Debug”菜单的“Animate”项(快捷键,F12 键)运行程序。(2)观察“Input”、“Output”窗口中时域图形,如下图5-3所示;(3)鼠标右键单击“Input”和“Output”窗口,选择“Properties…”项,设置“Display Type”为“FFT Magitude”,如下图5-5所示。(4)按F12 运行程序。 图5-4 FFT Magitude 图5-3时域图形 图5-3为input、output的时域波形,图5-4为input、output作FFT变换后的频域波形,其中横坐标显示实信号的归一化频率(f0=f/fs=0~0.5,式中f为实信号的实际频率,fs为采样频率。纵坐标显示幅度的相对值,可设置图形属性,改为dB作单位[6]。通过观察频域和时域图,结果表明,输入波形为一个1 000Hz~1 300Hz的正弦波与一个高频的正弦波叠加而成,输入波形中1 000Hz~1 300Hz的波形很好的通过了,输出波形中的低于800Hz和高于1 500Hz的信号波形都很好的过滤掉了,实现了带通滤波效果。 5.3 误差分析 因为在用定点DSP实现时,所有的数据都是定长的,运算也都是定点运算,因而会产生有限字长效应。所产生的误差主要包括:数模转换引起的量化误差、系数量化引起的误差以及运算过程中的舍入误差[3]。在用定点DSP时,产生误差是不能避免的,但是可以通过一些方法减小误差。如,可以用两个存储单元来表示一个数,运算时使用双字运算;可以根据需要要将滤波器系数都用双字表示,也可以只将一半的系数用双字表示,视需要而定[14]。另外,FIR数字滤波器和IIR数字滤波器所引入的量化误差是不一样的。FIR数字滤波器主要采用非递归结构,因而在有限精度的运算中都是稳定的。除了有限字长效应以外,不同结构引入的误差也有所不同[15]。在实际设计中,要注意实现中的误差问题。在选择不同的结构时,应考虑它们所引入的误差,并用高级语言进行定点仿真,以比较不同结构下误差的大小,从而作出合理选择。 结 束 语 在数字信号处理中,数字滤波占有极其重要的地位。几乎每一科学和工程领域,例如声学、物理学、通信、数据通信、控制系统和雷达都涉及信号。在许多应用中,都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程可能包含衰减一个频率范围、阻止或隔离一些频率成分。任何显示出上述频率选择特性的系统或网络称做一个滤波器。 数字滤波是谱分析、雷达信号处理、通信信号处理等应用中的基本处理算法,它能够满足滤波器对幅度和相位的严格要求,解决了模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题,同时有很高的可编程性和灵活性。数字滤波器是DSP最基本的应用领域,一个DSP芯片执行数字滤波算法的能力反映了这种芯片的功能强弱,用DSP实现的数字滤波器可以十分方便地改变滤波器特性。 实时数字信号处理的应用需求和超大规模集成电路技术水平的飞速发展,推动着数字信号处理器性能的不断提高,使其在信号处理、军事及民用电子技术领域发挥着越来越重要的作用,其应用广度和深度正在不断地扩展和深化。 近几年,DSP技术发展很快,主要表现在:更新速度快;速度越来越高,内部结构越来越复杂,功能越来越强等;软件开发工具越来越完善,用高级语言设计已经成为一种趋势。未来DSP的理想设计模式是,设计人员编写通用的C程序,其中调用名称和参数规范的优化算法函数,当DSP或DSP电路板升级时,只要将C程序在新的DSP开发环境下重新编译和链接,就能生成与实际电路匹配的可执行代码。这样的开发研制过程是十分快捷的,也节省了大量的人力资源、软件开发与维护费用。 附录 滤波器汇编程序 asm文件: .global start,fir .mmregs COFF_FIR_START: .sect "coff_fir" .include "bandpass\\bandpass68.inc" //68阶带通滤波系数 K_FIR_BFFR .set 32 d_data_buffer .usect "fir_bfr",64 FIR_DP .usect "fir_vars",0 d_filin .usect "fir_vars",1 output .usect "fir_vars",1 input .usect "fir_vars",1 d_filout .usect "fir_vars",100h stacksize .set 256 stack .usect "fir_vars",stacksize .asg AR4,FIR_DATA_P .asg AR6,INBUF_P .asg AR7,OUTBUF_P .asg AR3,OUTBUF .asg AR2,INBUF .sect "fir_prog" nop start: stm #stack+stacksize,SP LD #FIR_DP,DP STM #d_data_buffer,FIR_DATA_P RPTZ A,#K_FIR_BFFR-1 STL A,*FIR_DATA_P+ STM #d_filin,INBUF_P STM #d_filout,OUTBUF_P STM #output,OUTBUF STM #input,INBUF STM #100h,BK fir_loop: NOP ;Add Breakpoint & porbe point LD *INBUF_P,A STL A,*INBUF CALL fir STH A,*OUTBUF_P+% STH A,*OUTBUF main_end: b fir_loop fir: ; SSBX SXM ; SSBX FRCT STM #d_data_buffer,FIR_DATA_P STL A,*FIR_DATA_P STM #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P fir_task: RPTZ A,#K_FIR_BFFR-1 MACD *FIR_DATA_P-,COFF_FIR_START,A RET .end 连接文件: MEMORY { PAGE 0: PROG: o= 100h,l= 2000h PAGE 1: DATA1: o= 2600h, l= 1000h DATA2: o= 2100h, l= 10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服