毕业设计(论文)-FIR数字滤波器设计及实现.doc

上传人:哈尼dd 文档编号:3945696 上传时间:2019-10-10 格式:DOC 页数:33 大小:810.50KB
返回 下载 相关 举报
毕业设计(论文)-FIR数字滤波器设计及实现.doc_第1页
第1页 / 共33页
毕业设计(论文)-FIR数字滤波器设计及实现.doc_第2页
第2页 / 共33页
毕业设计(论文)-FIR数字滤波器设计及实现.doc_第3页
第3页 / 共33页
毕业设计(论文)-FIR数字滤波器设计及实现.doc_第4页
第4页 / 共33页
毕业设计(论文)-FIR数字滤波器设计及实现.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)-FIR数字滤波器设计及实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-FIR数字滤波器设计及实现.doc(33页珍藏版)》请在三一文库上搜索。

1、目录FIR数字滤波器设计及实现目 录摘要iAbstractii引言1第1章 概述2 1.1 数字滤波器简介 2 1.2 FIR数字滤波器的基本原理和结构3 1.3 FIR数字滤波器的设计方法3 第2章 FIR数字滤波器的设计 42.1 用窗函数法设计FIR滤波器42.1.1 窗函数法的原理42.1.2 常用窗函数52.1.3 窗函数法设计的基本步骤92.2 FIR数字滤波器的设计和性能分析92.2.1 用MATLAB仿真工具进行滤波器设计9 2.2.2 程序运行结果及性能分析10第3章 FIR数字滤波器的DSP实现143.1 系数对称FIR滤波器的实现方法143.2 建立DSP汇编程序的FIR

2、数字滤波器系数文件153.3 产生输入信号序列163.4 CCS5000编译、调试及仿真结果17 3.5 DSP硬件调试24结论27致谢28参考文献 29引言引言数字信号处理技术及其应用,目前正以惊人的速度向前发展着。随着大规模集成电路的出现和数字部件的成本下降、体积缩小及运算速度提高,数字信号处理的应用日益广泛。数字滤波是数字信号处理的基本方法。而数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。数字滤波器大略可分为有限冲激响应型(FIR)和无限冲激响应型(IIR)两类,可用硬件和软件两种方式实现。在硬件实现方式中,它由加法器、乘法器等单元组成,这与电阻器、

3、电感器和电容器所构成的模拟滤波器完全不同,而软件上可以借助MATLAB来仿真。而FIR滤波器是一种常用的滤波器,能实现各种各样的功能,诸如低通滤波、带通滤波、抗混叠、抽样和内插等。在设计任意幅频特性的同时能够保证严格的线性相位特性。因此,它在图像处理以及数据传输、无线通信等数字信号处理中有着广泛的应用。DSP是一种专门为快速实现各种数字信号处理算法而设计的、具有特殊结构的微处理器。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器的特性,主要应用于实时快速地实现各种信号的数字处理算法。用DSP芯片实现数字滤波具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性强等特

4、点。本文利用窗函数法,并借助MATLAB程序设计语言,设计FIR数字滤波器。基于TMS320VC54097芯片的数字信号处理功能,编写DSP汇编语言程序,采用循环寻址模式实现该滤波器。通过使用CCS应用软件进行仿真,可以观察到该滤波器的滤波效果,最终在TDS-510并口开发系统和DSP5409评估板上实现了该滤波器。第1章 概述第1章 概述随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字滤波是谱分析、雷达信号处理、通信信号处理应用中的基本处理算法。与模拟滤波相比,数字滤波有很多优点,例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波器无法克服

5、的电压漂移、温度漂移和噪声等问题。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器的特性。 1.1 数字滤波器简介数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定。在现代电子系统中,数字滤波器的好坏对相关的众多工程技术领域影响很大,一个好的数字滤波器会有效的推动众多工程技术领域的技术改造和学科发展。数字滤波器依据冲激响应的宽度划分为有限冲激响应(FIR)滤波器和无限冲激响应滤波器(IIR)。FIR 滤波器在数字通信系统中

6、被大量使用,以实现各种各样的功能,诸如低通滤波、带通滤波、抗混叠、抽样和内插等等。FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。它涉及的领域很广,如:通信系统、系统控制、生物医学工程、机械振动、遥感遥测、地质勘探、航空航天、电力系统、故障检测、自动化仪器等。与IIR数字滤波器相比,它的最大优点就是可以实现线性相位滤波,而IIR主要是针对幅频特性进行逼近,相频特性会存在不同程度的非线性。在数字通信和图像传输与处理等应用场合都要求滤波器具有线性相位特性。许多工程技术领域都涉及到信号,这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等。如何在较强的背景噪声

7、和干扰信号下提取出真正的信号并将其用于实际工程,这正是信号处理要研究解决的问题。20世纪60年代,数字信号处理理论得到迅猛发展,理论体系和框架逐渐趋于成熟,到现在它己经成长为一门独立的数字信号处理学科。数字滤波器它可以将输入信号的某些频率成分或某个频带进行压缩,放大,从而改变输入信号的频谱结构,因此也可以说是个频率选择器。另外滤波的概念还包括对信号进行检测和参数估计。数字滤波是提取有用信息非常重要、非常灵活的方法,是现代信号处理的重要内容。因而在数字通信、语音图像处理、谱分析、模式识别、自动控制等领域得到了广泛的应用。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非

8、常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛.1.2 FIR数字滤波器的基本原理和结构 设h(n)(n=0,1,2,N一1)为滤波器的冲激响应,输入信号为x(n),则滤波器FIR就是要实现差分方程: (1-1) 公式(1-1)就是FIR滤波器的差分方程。N为滤波器的阶数。它的单位脉冲响应h(n)是一个有限长序列。由上面的方程可见,FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本x(n),经延时(z-1),做乘法累加,再输出滤波结果y(n)4,5,6。对公式(1-1)进行z变换,整理后可得FIR滤波器的传递函数为 (1-2)从公式(1-

9、2)可以看出,FIR滤波器的一般结如图1-1所示:图1-1 FIR滤波器的结构图 由公式(1-1)、公式(1-2)可见H(z)为z-1的N-1阶多项式,它在z平面上有N-1个零点并在原点z=0处有N-1重极点。故H(z)永远为稳定系统。所以FIR滤波器具有如下特点: 给h(n)附加一定条件就可以实现严格的线性相位特性; FIR滤波器的稳定性,在设计过程中不必考虑系统的稳定性问题; 由于h(n)为有限长,便于采用FFT进行系统运算,运算效率高; FIR滤波器的阶数由h(n)的长度决定,所以一个具有良好的幅频特性的FIR滤波器的阶数往往都比较高。1.3 FIR数字滤波器的设计方法使用FIR滤波器可

10、以实现严格的线性相位特性,但其幅频特性的设计方法与IIR滤波器完全不同。FIR滤波器的设计方法有:窗函数法、频率采样法、切比雪夫等波纹逼近法等。FIR数字滤波器的设计思想是:在保证线性相位条件的前提下,选择合适的h(n)长度,使其传输函数H(ej)满足技术指标要求。本文采用窗函数法设计FIR数字滤波器。第2章 FIR数字滤波器的设计第2章 FIR数字滤波器的设计MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的

11、工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。12.1 用窗函数法设计FIR滤波器2.1.1 窗函数法的原理窗函数设计法的基本思想是要选取某一适合的具有理想频率特性的滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。因此,这种方法的重点在于选择某种恰当的窗函数和一种合适的理想滤波器。设所希望得到的滤波器的理想响应为 (2-1)那么FIR滤波器的设计就是在于寻找一个传递函数H(ej): (2-2)用H(ej)去逼近Hd(ej),设 (2-3)由于Hd(ej)的矩形频率特性,故hd(n)一定是无限长的序列,而且是非因果的。要设计的FIR滤波器其h(n)必然

12、是有限长的,所以要用有限长的h(n)来逼近无限长的hd(n),最有效的方法是截断hd(n),或者说用一个有限长的窗口函数序列w(n)来截取hd(n),即 (2-4)窗口函数相当于对hd(n)在时域上截取一段,势必造成频域的矩形窗口的失真,结果就是截取出的信号也相应失真。为了补偿这种失真,只有改变原来窗口的形状,修正经过时域截取后的窗口失真。改善窗口函数的标准: (1) 尽量减少窗口频谱的旁瓣,使能量集中在主瓣中,以减少波动的幅度和次数,提高阻带衰减。这样,主瓣就不能太窄。 (2) 主瓣的宽度应尽量窄,以得到尽量窄的过渡带; 因而,窗口函数序列的形状及长度选择是很关键。在设计过程中,可由所设计滤

13、波器的过渡带宽和阻带最小衰减的要求选定窗函数w(n)的形状。归一化窗函数常用的三个频域指标9(如图2-1所示): 3db带宽B 最大旁瓣值A(db) 旁瓣谱峰渐进衰减D 一个理想的窗函数应该具有最小的B和A及最大的D。图2-1 窗函数的幅度响应分贝图2.1.2 常用窗函数常用的窗函数可以分为六种:矩形窗、三角形窗、汉宁窗、汉明窗、布莱克曼窗、凯塞贝赛窗。下面简单的介绍这六种窗。(1) 矩形窗(Rectangle Window) (2-5)其频率响应为 (2-6)WR(ej)的主瓣宽度为B=4/N,第一副瓣比主瓣低13db。即A=-13db。旁瓣谱峰渐进衰减速度为D=-6db/oct。(2) 三

14、角形窗(Bartlett Window) (2-7)其频率响应为 (2-8)WBr(ej)的主瓣宽度为B=8/N,第一副瓣比主瓣低27db。即A=-27db。旁瓣谱峰渐进衰减速度为D=-12db/oct。(3) 汉宁(Hanning)窗升余弦窗 (2-9)或 (2-10) (2-11)其中 (2-12)由于频谱是由三个互有频移的不同幅值的矩形窗函数相加而成,这样使旁瓣大大抵消,从而能量相当有效地集中在主瓣内。其代价:主瓣加宽一倍,可达到减小峰值,余振,提高阻带衰减的目的。缺点:过度带加大。W(ej)的主瓣宽度为B=8/N,第一副瓣比主瓣低32db。即A=-32db。旁瓣谱峰渐进衰减速度为D=-

15、18db/oct。(4) 汉明(Hamming)窗改进的升余弦窗 (2-13)其频域函数WHm(ej)为 (2-14)其幅域函数WHm()为 (2-15)当N1时,可近似表示为 (2-16)这种改进的升余弦窗,能量更加集中在主瓣中,主瓣的能量约占99.96%,第一旁瓣的值比主瓣小43dB,即A=-43dB,但主瓣宽度和汉宁窗相同,即B=8/N,旁瓣谱峰渐近衰减速度为D=-6dB/oct。(5) 布莱克曼(Blackman)窗二阶升余弦窗 (2-17)其频域函数为 (2-18)其幅度函数为 (2-19)其幅度函数由五部分组成,它们都是移位不同,且幅度也不同的WR()函数,使旁瓣再进一步抵消。阻带

16、衰减进一步增加,这样可以得到更低的旁瓣,但主瓣宽度却不得不加宽到矩形窗的3倍,即B=12/N,第一旁瓣的值比主瓣小58dB,即A=-58dB,旁瓣谱峰渐近衰减速度为D=-18dB/oct。(6) 凯塞贝塞尔窗(Kaiser-Basel Window) 以上几种窗函数是各以一定主瓣加宽为代价,来换取某种程度的旁瓣抑制,而凯塞窗则是:全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它们两者之间自由地选择它们的比重。凯塞窗是由零阶第一类贝塞尔函数组成: (2-20)式中 (2-21)Io(x)是零阶第一类修正贝塞尔函数,可用下面级数计算: (2-22)一般Io(x)取1525项,便可以满足精度要求。参

17、数可以控制窗的形状。一般加大,主瓣加宽,旁瓣幅度减小,典型数据为49。当=5.44时,窗函数接近汉明窗。=7.865时,窗函数接近布莱克曼窗。凯塞窗的幅度函数为 (2-23) 常用的窗函数的幅度特性如图2-2所示,其中(a)为矩形窗,(b) 三角形窗,(c)汉宁窗,(d)汉明窗,(e) 布莱克曼窗图2-2 常用的窗函数的幅度特性理想低通加窗后的幅度特性(N=51,c=0.5)如图2-3所示。图2-3 理想低通加窗后的幅度特性(N=51,c=0.5)2.1.3 窗函数法设计的基本步骤 窗函数法设计的基本步骤如下2: 根据滤波器设计要求指标,确定滤波器的过渡带宽和阻带衰减要求,选择窗函数的类型并估

18、计窗的宽度N; 根据所要求的理想滤波器求出单位脉冲响应hd(n); 根据求得的h(n)求出频率响应H(ej); 根据频率响应验证是否满足技术指标。若不满足指标要求,则应调整窗函数类型或长度,然后重复、步,直到满足要求为止。2.2 FIR数字滤波器的设计和性能分析2.2.1 用MATLAB仿真工具进行滤波器设计设计一个系数对称的FIR低通滤波器,技术指标:通带截止频率p=0.5,阻带截止频率s=0.7,通带衰减不大于2dB,阻带衰减不小于40db, N=42,采样频率fs=16000Hz。 由于阻带衰减不小于40db,根据上一节对窗函数的介绍和从表2-1 六种窗函数的基本参数可以确定采用哪种窗函

19、数进行设计。本文选择采用汉宁窗来进行设计。表2-1 六种窗函数的基本参数窗函数旁瓣峰值/db近似过渡带宽 精确过渡带宽 阻带最小衰减/db矩形窗-134/N1.8/N-21三角形窗-258/N6.1/N-25汉宁窗-318/N6.2/N-44汉明窗-418/N6.6/N-53布莱克曼窗-5712/N11/N-74凯塞-贝赛窗-5710/N10/N-80可以根据以下两种方法获得满足该条件的滤波器系数及其幅频特性图。 一种是编写滤波器程序。根据窗函数设计理论h(n)=hd(n)w(n),在Matlab中用语句hn=hd*wd实现h(n)。最后,利用Matlab的数字信号处理工具箱中的freqz函数

20、,再通过对求对数得到以db为单位的幅频特性,并用图形显示函数plot将其绘制出来。其主程序流程图如图2-4所示(详细程序见附录1)。开始读入窗口长度N调用子程序计算理想脉冲响应hd调用窗口子程序求w_han计算h(n)=hd(n)w(n)调用freqz函数,求对数并归一化,获得其幅频特性调用plot函数绘制出幅频特性曲线结束图2-4 滤波器主程序框图另一种是用Matlab软件中数字信号工具箱内的FDATool10来确定滤波器的系数,具体操作:打开Matlab,在Command Window窗口中输入FDATool,在弹出的Filter Design & Analysis Tool工作界面里,根

21、据给定的技术指标填写该工作界面的各对话,最后点击DesignFilter按钮,MATLAB软件将按要求给出设计结果。2.2.2 程序运行结果及性能分析按上述流程图编写matlab程序,运行程序,我们可以得到所设计的FIR滤波器的幅频特性曲线,如下图2-5所示。图2-5 FIR滤波器的幅频特性曲线在Command Window窗口输入h,可以得到滤波器系数,如表2-2所示。表2-2 滤波器系数滤波器系数 结果滤波器系数 结果滤波器系数 结果h(1)= h(42) 0.0001h(4)= h(39) 0.0029h(7)= h(36) 0.0083h(10)= h(33) 0.0074h(13)=

22、 h(30) -0.0149h(16)= h(27) -0.0771h(19)= h(24) -0.2394h(2)= h(41) -0.0005h(5)= h(38) -0.0015h(8)= h(35) 0.0043h(11)= h(32) 0.0247h(14)= h(29) 0.0601h(17)= h(26) 0.0997h(20)= h(23) 0.1260h(3)= h(40) -0.0005h(6)= h(37) -0.0058h(9)= h(34) -0.0185h(12)= h(31) -0.0311h(15)= h(28) -0.0233h(18)= h(25) 0.05

23、11h(21)= h(22) 1.0000倘若采用的是FDATool工具进行设计,要得到滤波器的系数就可以利用命令栏的Analysis 中的Filter Coefficients即可,见图2-6中的Filter栏中就是得到的系数b。图2-7是由FDATool工具设计出的幅频特性曲线。 图2-6 Filter Design & Analysis Tool的工作界面图2-7 由FDATool工具设计出的幅频特性曲线由于通带截止频率p=0.5,阻带截止频率s=0.7,根据公式(2-24) c=(s+p)/2 (2-24)不难算出指标给定的截止频率c为0.6。从图2-5,我们可以大致读取第一旁瓣峰值的

24、坐标为(-44,0.695),在图2-7取第一旁瓣峰值的坐标为(-44,0.7),证明第一旁瓣比主瓣低44db,即最大旁瓣值A=-44db。可见,通过这两种方法所得到的幅频图均满足设计指标阻带衰减不小于40db的要求。其截止频率0.6衰减为6.04db。旁瓣谱峰渐进衰减速度D为53.7 db/oct。实践证明,不管采用哪种方法,均可获得我们所要设计的FIR数字滤波器。 通过调用filter函数,可观察到滤波器的滤波效果(程序见附录3)。设输入信号x(t)=sin(0.3t)+sin(0.4t)+sin(0.7t)+sin(0.8t)仿真结果如图2-8所示。图2-8 输出信号 由于输入信号中的四

25、个频率分量0.3、 0.4、 0.7、 0.8,只有0.3、0.4低于截止频率0.6,从图2-8,我们可以看到这两个频率分量均被保留下来,而另外两个频率分量0.7、0.8被滤除。实践证明,该滤波器满足设计要求。第3章 FIR数字滤波器的DSP实现第3章 FIR数字滤波器的DSP实现3.1 系数对称FIR滤波器的实现方法3:根据技术指标,可知设计一个N=42的FIR低通滤波器,若h(n)h(N-1-n),就是对称FIR滤波器,其输出方程为: y(n)hox(n)+hlx(n-1)+h2x(n-2)+a40x(n-40)+a41x(n-41) (3-1)总共有42次乘法和41次加法。如果改写成:y

26、(n)hox(n)+x(n-41)+hlx(n-1)+x(n-40)+h20x(n-20)+x(n-21) (3-2)变成21次乘法和41次加法。可见乘法运算的次数减少了一半。这是对称FIR的优点。对称FIR滤波器在C54x的实现,可按如下步骤进行: 在RAM中开辟两个N/2=21长度的循环缓冲区New和Old,分别存放N/2=21个新数据和老数据,并设置循环缓冲区指针,AR1指向New区中的最新数据,AR2指向Old区中的最老数据;同时在程序存储器中设置系数表,如下图3-1; 进行(AR1)+(AR2) AH加法运算,且(AR1)-1AR1,(AR2)-1AR2 将累加器B清0,完成下面块操

27、作,重复执行N/2=21次; 乘法-累加(AH)*bi+(B)B;修改系数指针:(PAR)+1PAR; 加法运算:(AR1)+(AR2)AH;AR1和AR2均减1,然后保存和输出结果; 修正数据指针,AR1指向New区的最老数据;AR2指向Old区的最老数据。用New区的最老数据替代Old区的最老数据(图3-1中箭头所示),AR2减1,输入新数据替代New区的最老数据; 重复执行 图3-1 新旧缓冲区设置及系数表在编程中要用到FIRS(对称有限冲激响应滤波器)指令。FIRS指令在同一个机器周期内,通过CB和DB总线读两次数据存储器,同时通过PD总线读个系数。其操作如下: FIRS Xmem,Y

28、mem,Pmad 执行PmadPAR; 当(Rc)0,则(B)+AHx(Pmem)B,(Xmem)+(Ymem)16A, (PAR)+1AR,(RC)-1RC,其中Pmem是通过PAR寻址。3.2 建立DSP汇编程序的FIR数字滤波器系数文件根据前面的介绍,从表2-2 滤波器系数可以看出,FIR滤波器原始系数已归一化,在-1+1之间。由于最大系数的绝对值不超过1,可以省去所有系数除去最大系数的绝对值的处理。为了能用定点Q15格式处理,同时考虑到乘法器和累加器只有32位,所以给42个系数同时都乘以(215-1),将小数点后的数舍去,转化为16位整数。这样,在FIR滤波过程中不会造成数据溢出。 D

29、SP要求的数据格式为.dat文件,该模拟数据文件(.dat)由MATLAB产生,产生.dat文件的指令代码如下:fo=fopen(FIR_table.dat,w);fprintf(fo, tt .word %drn,h2);fclose(fo); 其中,FIR_table.dat为保存系数的文件名,h2是产生的系数;指令fprintf(fo, tt .word %drn,h2)是将产生的系数按 .word h2的格式写入FIR_table.dat。 值得注意的是,word是伪指令,根据TMS320C54x汇编语句的组成8,伪指令不能从第一列开始。可以采用两种方法把模拟数据文件加载到DSP调试环

30、境中:第一种是DSP程序用伪指令include包含该数据文件,即.include FIR_table.dat,编译/汇编后程序代码中就包含了这批数据;第二种是在DSP调试环境中用存储器加载(Fill)命令,把FIR_table.dat装入存储器。这里采用的是第一种方法。经处理后的系数如 表3-1所示。表3-1 滤波器系数表滤波器系数 结果滤波器系数 结果滤波器系数 结果h(1)= h(42) 3h(4)= h(39) 49h(7)= h(36) 136h(10)= h(33) 122h(13)= h(30) -243h(16)= h(27) -1263h(19)= h(24) -3921h(2

31、)= h(41) -8h(5)= h(38) -24h(8)= h(35) 71h(11)= h(32) 405h(14)= h(29) 986h(17)= h(26) 1633h(20)= h(23) 2064h(3)= h(40) -8h(6)= h(37) -95h(9)= h(34) -302h(12)= h(31) -510h(15)= h(28) -381h(18)= h(25) 838h(21)= h(22) 163833.3 产生输入信号序列 设输入信号x(t)=sin(0.3t)+sin(0.4t)+sin(0.7t)+sin(0.8t)通过matlab编程,产生DSP可识别

32、的输入信号文件(.dat)。利用图形显示函数plot绘制输入信号的幅频特性曲线,如图3-2。同时将生成的数字序列保存为FIR_in.dat数据文件,以至能被CCS5000读取。图3-2 输入信号的幅频特性曲线3.4 CCS5000编译、调试及仿真结果 FIR滤波器设计的具体流程如下:先对主程序进行初始化,包括数据段的初始化和数据缓冲区的清零等,再将输入数据送到输入缓冲区中,执行FIR滤波程序,最后将滤波结果输出。同时在CCS的图形显示界面中显示输入与输出波形。FIR滤波器算法在TMS320C54x开发板上可用汇编,也可用C语言实现。但汇编执行效率高。本文采用汇编实现。主程序(详见附录4)流程图

33、如图3-3所示:开始DSP初始化输入滤波器系数开始读取样值放入AHB+=AH*bi,AH=(AR1)+AR2PAR+=1,循环次数减1B清0循环次数0输出保存BNY图3-3 主程序流程图 在运行CCS之前,必须正确地进行系统配置,如图3-4,选择C54x系列,同时选择软件仿真平台,保存配置,才可正式运行CCS3.1应用程序进行软件开发了。图3-4 CCS的配置界面汇编程序调试可先在CCS中建立新的工程fir.pjt,再将汇编语言源文件(.asm)及中断向量文件(.asm)、链接命令文件(.cmd)添加到工程。编译后生成可执行文件(.out),加载该可执行文件后,系统会弹出源程序的反汇编窗口,如

34、图3-5所示。从该窗口可以看出,程序起始位置为E02Eh。图3-5 源程序反汇编窗口图3-6为CCS开发环境,从编译链接信息框我们可以看到源程序检错编译的结果。 图3-6 CCS开发环境单击Run按钮,进行ccs软件仿真。从View菜单,选择GraphTime/Frequency命令,在系统弹出的“图形属性”对话框中填入如图3-7、图3-8所示的参数,单击OK按钮,保存输入的参数,即可观察到输入输出频域波形。图3-7 窗口参数设置输入图3-8 窗口参数设置输出在CCS中,通过加入一个输入波形信号为x(t)=sin(0.3t)+ sin(0.4t)+ sin(0.7t)+ sin(0.8t),对

35、所设计的滤波器进行仿真,频率大于截止频率0.6的部分被滤除,其输入及输出结果如图3-9、图3-10所示。仿真结果表明,频率大于截止频率0.6的部分被滤除,达到设计要求。图3-9 滤波前输入信号频域波形 图3-10 滤波后输出信号频域波形 为了确认程序运行的情况和正确性,我们需要查看CPU寄存器和外设寄存器。执行ViewRegistersCPU Registers命令,系统就会显示CPU寄存器的内容,如图3-11(a)(b)所示。执行ViewRegistersPeripherial Registers命令,系统就会显示外设寄存器的内容,如图3-12(a)(b)所示。图3-11(a) 运行前CPU

36、寄存器内容图3-11(b) 运行后CPU寄存器内容 图3-12(a) 运行前外设寄存器内容 图3-12(b) 运行后外设寄存器内容 从图3-11(a)(b),我们可以看到程序运行前后CPU寄存器中只有部分内容发生变化,如状态寄存器ST0、ST1,测试/控制位TC、进位位C、中断标志位IFR、符号扩展位SXM等。其中,TC保留算数逻辑单元位测试操作的结果。TC的状态(置位和清除)决定条件分支、调用、执行和返回指令的动作。当TC=1时,程序中的跳转指令BD被执行,程序处于循环状态;当TC=0时,程序中跳转指令BD不被执行,程序执行下条指令。 同样的,从图3-12(a)(b),我们也可以观察到程序运

37、行前后外设寄存器中只有部分内容发生变化,分别是子块地址寄存器DMSA、定时器寄存器TIM、定时器控制寄存器TCR。其中,TIM是一个减1计数器,TCR中包含有定时器的控制位和状态位,它们与定时器周期寄存器PRD组成一个定时器,可用来周期地产生中断。3.5 DSP硬件调试 在连接硬件设备时,必须先切断电源,在硬件设备连接好后再打开电源,这样做是为了避免将DSP芯片烧坏。进行硬件仿真前,同样的也必须要对CCS进行重新配置,移除系统原有的配置,选择C5409 XDS510 Emulator,并选择正确的驱动路径,如图3-13所示,点击Save & Quit,保存并启动CCS。图3-13 CCS硬件配

38、置图硬件仿真时,不需要再重新建立工程,只需打开工程fir.pjt,仿真操作步骤与软件仿真一样,按图3-7、图3-8进行设置,即可得到仿真结果,如图3-14、图3-15所示。图3-14显示的是滤波前输入信号的频域波形,图3-15显示的是经所设计的滤波器滤波后的输出频域波形。从图3-15,我们可以看出在频率大于截止频率0.6的部分被滤除,仿真结果与软件仿真结果一样,符合设计要求。图3-14 滤波前输入信号的频域波形图3-15 滤波后的输出频域波形结论结论之前对FIR数字滤波器的学习,只是停留在教科书上的那些理论的知识,但这次的设计,让我可以清楚地观察到FIR数字滤波器的滤波过程,更重要的是我可以将

39、理论知识运用到实际设计中来,借助MATLAB软件,运用汉宁窗法设计FIR数字滤波器,并在DSP上将其实现。在设计过程中,利用了MATLAB强大的工具箱功能与DSP完美结合,借用MATLAB辅助设计,使得在设计过程中达到事半功倍的效果。在MATLAB设计中,通过调用freqz、plot、filter等简单的函数,很快就设计出满足指标要求的FIR数字滤波器;在CCS仿真过程中,采用了循环寻址模式,实现了该FIR数字滤波器。尤其是DSP程序设计中的FIRS指令充分利用滤波器系数的对称性,使乘法次数和存放滤波器系数的存储区长度均减为N的一半,大大提高了滤波的实时性且有效地节约了存储空间。运用数字信号处理芯片TMS320VC5409强大的运算功能,配合外围电路,可方便地实现所设计的FIR滤波器。 实验证明,该FIR数字滤波器不论是在MATLAB、CCS或者DSP上进行仿真,都能得到相当理想的滤波效果。当然,在整个设计过程中,还存在一个不足之处。那就是在CCS进行仿真的时候,在编译链

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1