基于TMS320C54x的FIR滤波器设计.docx
- 文档编号:3951721
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:12
- 大小:493.50KB
基于TMS320C54x的FIR滤波器设计.docx
《基于TMS320C54x的FIR滤波器设计.docx》由会员分享,可在线阅读,更多相关《基于TMS320C54x的FIR滤波器设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于TMS320C54x的FIR滤波器设计
摘要
本次课程设计中我们主要应用的是MATLAB软件设计FIR数字滤波器,并对我们所设计的滤波器进行CCS仿真,应用DSP集成开发环境—CCS调试汇编程序,然后通过用TMS320C540x来实现了FIR数字滤波。
FIR滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
本次设计的目的是加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则,从而全面加强我们课堂上学习的知识。
关键字:
MATLAB;DSP设计;CCS;FIR数字滤波器;汇编语言编写
ABSTRACT
ThecurriculumdesignwemainlyistheapplicationofMATLABsoftwaretodesignFIRdigitalfilter,andthesimulationofthefilterwedesigned,theapplicationofDSPintegrateddevelopmentenvironmentCCSdebuggingassembler,thenusingTMS320C540xtorealizeFIRdigitalfilter.TheFIRfilteristhemostbasicelementsofdigitalsignalprocessingsystem,whichcanguaranteethearbitraryamplitudefrequencycharacteristicandastrictlylinearphasefrequencycharacteristic,atthesametimetheunitsamplingresponseislimited,thusthefilterisstablesystem.
Thedesignobjectiveistoenhancethestructure,theworkingprincipleofDSPchipTMS320C54xunderstanding,practicaltrainingtoobtainDSPapplicationtechnology,masterthebasicmethodtodesignmorecomplexDSPsystems.Writeacompletefunctionalgraphicsprocessingproceduresorinformationsystemsthroughtheuseofassemblylanguage,toenablestudentstodeepentheunderstandingoftheknowledge,tofurtherconsolidatetheassemblylanguagestatementrules.Tocomprehensivelystrengthenthelearningofourknowledgeoftheclass.
Keywords:
MATLAB;DSPdesign;CCS;FIRdigitalfilter;assemblylanguage
Alpha
第1章绪论
1.1DSP简介
数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,它的英文原名叫digitalsignalprocessing,简称DSP。
另外DSP也是digitalsignalprocessor的简称,即数字信号处理器,它是集成专用计算机的一种芯片。
有时人们也将DSP看作是一门应用技术,称为DSP技术与应用。
数字信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。
1.2DSP技术现状
广义来说,数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。
但很多人认为:
数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和谱分析方法。
随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展,其应用领域十分广泛。
数字控制、运动控制方面的应用主要有磁盘驱动控制、引擎控制、激光打印机控制、喷绘机控制、马达控制、电力系统控制、机器人控制、高精度伺服系统控制、数控机床等。
面向低功耗、手持设备、无线终端的应用主要有:
手机、PDA、GPS、数传电台等。
现代滤波理论研究的主要内容是从含有噪声的数据记录(又称为时间序列)中估计出信号的某些特征或信号本身。
一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。
现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱函数等等)导出一套最佳的估值算法,然后用硬件和软件实现。
目前现代滤波器主要有:
维纳滤波器、卡尔曼滤波器、线性预测器、自适应滤波器等,很多专家将基于特征分解的频率估计及奇异值分解算法都归入现代滤波器的范畴。
GR雷达信号处理分析系统中的信号分析中的滑动平均谱和常规处理中的反褶积运算采用了现代处理的部分功能。
第2章设计硬件介绍
2.1FIR滤波器概述
2.1.1FIR滤波器简介
FIR滤波器:
有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题;由于FIR滤波器一般为非递归结构,因此,在有限运算下不会出现递归型结构中的极限振荡等不稳定现象误差较小;FIR滤波器可以采用FFT算法实现,从而提高了运算效率。
2.1.2FIR滤波器优缺点
总结FIR数字滤波器的优点:
(1)很容易获得严格的线性相位,避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要;
(2)可得到多带幅频特性;
(3)极点全部在原点(永远稳定),无稳定性问题;
(4)任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列,所以因果性总是满足;
(5)无反馈运算,运算误差小。
FIR数字滤波器的缺点:
(1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价;
(2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计算机辅助设计程序完成。
2.1.3FIR滤波器设计思路
DSP芯片有专用的数字信号处理函数可调用,或者根据芯片指令集的结构自行设计代码实现FIR的功能;由于FIR设计时其系数计算及其量化比较复杂,因此一般都采用MATLAB软件作为辅助设计,计算出FIR的系数;然后进行代码设计实现。
实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。
信号在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足奈奎斯特定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
2.2TMS320C54X的硬件结构
TMS320C54x系列DSP是TI公司在继TMS320C1x、TMS320C2x、TMS320C5x之后推出的新一代16位定点数字信号处理器,运算速度高达100MIPS。
TMS320C54x的体系结构采用改进的哈佛结构,程序与数据分开存放,内部具有8条高度并行的总线。
图3-1是它的内部硬件组成框图,包括:
CPU,总线,存储器,在片外设电路等。
主要特点如下:
图2-1是它的内部硬件组成框图,包括:
CPU,总线,存储器,在片外设电路等。
(1)CPU
由1条程序总线、3条数据总线和4条地址总线构成的先进的多总线结构,用于读写程序、数据和地址。
由1个40位桶形移位寄存器和2个独立的40位累加器组成的40位算术逻辑运算单元(ALU),用于进行补码数的加法运算和减法运算。
17位×17位并行乘法器与40位专用加法器相连,用于非流水线式单周期乘法/累加(MAC)运算。
比较、选择、存储单元(CSSU),用于加法/比较选择。
指数编码器,可以在单个周期内计算40位累加器中数值的指数。
双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。
(2)存储器
1M字程序存储器、64K字数据存储器以及64K字I/O空间。
4K×16bit片内ROM,可配置为程序/数据存储器。
16K×16bit片内双寻址RAM(DARAM)。
在每个机器周期内,TMS320C54x允许对同一DARAM块寻址(访问)2次,因此CPU可以在一个机器周期内对同一DARAM块读出1次和写入1次。
当DARAM映象到数据存储器空间,主要用于存放数据。
当他映象到程序存储器空间,用来存放程序代码。
通常情况下,DARAM映射到数据空间。
(3)指令系统
单指令重复操作和块指令重复操作。
块存储器传送指令。
32位长操作数指令。
同时读入2或3个操作数的指令。
能并行存储和并行加载的算术指令。
条件存储指令。
从中断快速返回。
(4)在片外围电路
软件可编程等待状态发生器。
可编程分区转换逻辑电路。
带有内部振荡器或用外部时钟源的片内锁相环(PLL)时钟发生器。
时分多路(TDM)串行口。
缓冲串行口(BSP)。
2个16位定时器。
8位并行主机接口(HPl)。
外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
数据总线具有总线保持器特性。
(5)电源
工作电压:
3.3VI/O电压,1.8V核电压可用IDLEl、IDLE2和IDLE3指令控制功耗,以工作在省电方式。
CLKOUT输出信号可以关断。
(6)在片仿真接口具有符合IEEEll49.1标准的在片(JTAG)仿真接口。
(7)速度单周期定点指令的执行时间为10ns,100MIPS。
图2-1TMS320C54X图
第3章MATLAB设计
3.1FIR滤波器设计原理
滤波器就是在时间域或频域内,对已知激励,产生规定响应的网络,使其能够从信号中提取并放大有用的信号,抑制并衰减不需要的信号。
数字滤波器的设计,实质上就是对提出的设计要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器频率响应特性,逼近给出的频率响应特性。
设计完成后,可根据计算结果在FPGA或DSP上实现。
对于一个FIR滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:
(式3-1)
其中N-1是FIR的滤波器的阶数,
为延时结,
为端口信号函数。
最基本的FIR滤波器可用下式表示:
(式3-2)
我们用卷积来表示输出序列y(n)与x(n)、h(n)的关系。
结构主要是非递归结构,FIR滤波器最主要的特点是没有反馈回路,因此它是无条件稳定系统。
它的单位脉冲响应h(n)是一个有限长序列,脉冲响应顾名思义,滤波器的脉冲响应就是滤波器对脉冲输入的响应;换句话讲,当滤波器的输入为单位脉冲时,滤波器的输出就是单位脉冲响应。
脉冲响应反映了滤波器的基本特性,由于所有的数字信号可以由脉冲函数构成,所以脉冲响应可用来求各种输入时的输出。
如果h(n)是实数,且满足偶对称或奇对称的条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n),则滤波器具有线性相位特性的充要条件。
对于非递归FIR滤波器,系数的存储空间和算术运算次数几乎减少了2倍,对于递归滤波器系数转变为简单整数,提高了处理速度。
在线性相位滤波器中,所有频率分量通过滤波器时会遇到同样大小的延迟,即没有相位失真。
如图3-1所示是FIR滤波器的一般结构:
图3-1FIR滤波器一般结构图
3.2MATLAB程序设置
这部分为未初始化段,在TMS320C54x的目标存储器中保留空间以供程序运行过程中的变量作为临时存储空间使用。
在目标文件中,在这些段中没有确切的内容,通常将他们定位到RAM区中,其中未初始化段为命令定义,由.usect汇编器伪指令来编写语法,符号对应于保留的存储空间第一个字的变量名称,这个符号可以在其他段引用,为每一个符号留一个存储空间,给程序中的未初始化部分保留存储空间后为每一个保留存储空间赋值,在table中给出数值,赋值过程先把XN送到AR1,table中的值依次给*AR1中,循环28次每循环一次之后*AR1加一,赋值完成之后把指针DP指向#XN,y送入AR2中。
链接器命令文件的编写和使用:
链接器命令文件是将连接的信息放在一个文件中,这样,如果需要多次使用同样的链接信息可以方便的调用。
在命令文件中使用两个重要的伪指令MEMORY和SECTIONS,指定实际应用中的存储器结构和进行地址的映射,其中MEMORY用来指定目标存储器结构,SECTIONS用来控制段的构成与地址分配。
MEMORY伪指令的PAGE(页面)选项来分开构成程序存储器区域和数据存储器区域的地址空间。
在默认的方式下,PAGE0为程序存储器,PAGE1为数据存储器链接器将这两个空间当做完全分开的存储器空间来处理。
伪指令SECTIONS可说明如何将输入的段结合成输出段,也可在执行程序中定义输出段,同时指定输出段放在存储器中的位置,并且允许对输出段重新命名。
MEMORY伪指令一般和SECTIONS伪指令一起使用,控制输出段的分配。
在用MEMORY伪指令定义目标存储器的模型之后,可以使用段伪指令SECTIONS将输出段分配到具有指定名称或属性的存储器中,将.text和.data段分配进命名为ROM的存储器区间,而将.bss段分配进称为SPRAM的区间。
其中直接寻址线性缓冲区数据分配如下图:
图3-2直接寻址线性缓冲区数据分配
第4章CCS系统仿真
4.1CCS简述
CCS,即CodeComposerStudio,是TI公司在1999年推出的一个开放、具有强大集成开发环境。
它最初是由GODSP公司为TI的C6000系列DSP开发的。
在TI收购了GODSP后,将CCS扩展到了其它系列。
现在所有TI的DSP都可以使用CCS进行开发,但是其中的DSPBIOS功能只有C5000和C6000的CCS中才提供。
CodeComposerStudio包含一整套用于开发和调试嵌入式应用的工具。
它包含适用于每个TI器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。
CCSIDE提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。
借助于精密的高效工具,用户能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。
4.2CCS特点
集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等。
集成代码生成工具,包括汇编器、优化的C编译器和连接器等。
具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试。
支持多片DSP联合调试。
断点工具,支持硬件断点、数据空间读/写断点、条件断点等。
探针工具,用于进行算法仿真,数据监视等。
剖析工具,用于评估代码执行的时间。
数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。
提供GEI工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。
4.3用CCS进行数字滤波器设计
在CCS集成环境下开发汇编程序或者C/C++程序,首先要建立一个工程项目文件(*.pjt),再向工程项目文件中添加汇编程序源文件(*.asm),C/C++源文件(*.c)和链接命令文件(*.cmd),并设置工程项目选项。
使用CCS开发应用程序的一般步骤如下:
1)创建或打开一个工程项目文件(*.pjt),编辑各类文件,可以使用CCS提供的集成编辑环境,对链接命令文件和源程序进行编辑。
2)对工程项目进行编译。
在编译过程中如果出现语法错误,将在编译链接信息视窗(build)窗口中显示错误信息,用户可以根据显示的信息找到错误的位置,更改错误。
3)对结果和数据进行分析和算法评估。
用户可以利用CCS提供的探测点.图形显示和性能评价等工具,对运行结果及输出数据进行分析,评估算法的可能性。
下面分别进行介绍建立工程文件,单击Project→New命令,系统将弹出如图所示的对话框,在该对话框中输入项目文件名,如fir单击“完成”系统就会创建一个名为fir.pjt的工程项目文件如图4-1所示。
图4-1建立工程文件
对程序进行编译:
执行Project→Compile命令就可以对当前的汇编程序进行编译生成.obj文件。
如果程序存在语法错误,那么就会在下面的编译链接信息框中显示错误信息。
根据错误提示,读者可对程序进行修改。
图4-2界面图
对程序进行编译链接执行Project→Build命令,就可以对当前的项目文件同时进行编译,汇编和链接操作,并生成与工程项目名称相同的可执行的.out文件。
如果有错误信息,则会在“编译链接”信息框中显示装载:
单击主菜单“File”中“LoadProgram”选项,在对话框中,在CCS安装目录下,找到构建该工程的Debug目录,选择构建生成后的.out文件,并打开CCS装载完毕后,该“*.out”文件到目标dsp之后,会自动弹出“Disassembly”窗口
当程序加载成功后,CCS会自动打开一个反汇编窗口。
在CCS中可以观察某个特定地址内存单元数据。
执行菜单命令“View”到”Memory”在“Address”中显示存储器首地址为0x0060,其中设置的各种属性如下图:
图4-3参数设置
打开View->Graph->Time/Frequency,设置数据。
图4-4数据设置
然后重复前三个步骤,只改变图形选项中的DisplayType、GraphTitle、StartAddress:
左上图:
数据时域图(StartAddress:
input),输入数据频谱(DisplayType:
FFTMagnitude),输出数据时域图(StartAddress:
output),输出数据频谱(DisplayType:
FFTMagnitude)。
最后得到下列输出结果图。
图4-5输入数据频谱
图4-6输出数据频谱
图4-7输出结果图
结论
通过这次的学习,使我们在专业的学习上具有了一定运用所学理论知识来分析问题和解决问题的能力。
全面、系统地巩固和提高在校期间所学到的基础知识和专业知识。
通过对多种环节、多种内容的操作和训练,让学生的动手操作技能得到了巩固。
在实践能力上有了一定的提高。
此外在设计期间我学会了如何把所学的知识应用实践中,让实践和理论相结合,真正做到学以致用。
致谢
经过了不长但是非常有意义的时间,本次课程设计划下了完美的句号。
在这些天有老师谆谆的教导,有同学的帮助,有自己的辛苦等等掺杂其中,而在最终结束之后不禁感慨万分。
在此首先要深深的感谢老师在百忙之中对我们不厌其烦的指导和传授,没有您的辛勤劳动便没有我们最终的成果。
其次要感谢互相帮助还有互相鼓励的同学,没有你们便没有这些天美好的回忆。
最后对支持我们进行本次设计并提供场地的学校表示感谢。
这些天的努力对我的感触极大,相信我会把这些收获化为自己可以用到的知识和能力,应用到以后的学习生活中。
参考文献
[1]刘艳萍.DSP技术原理及应用教程[M].北京:
航空航天大学出版社,2011
[2]郑红.DSP应用系统设计实践[M].北京航空航天大学出版社,2006
[3]罗军辉.MATLAB7.0在数字信号处理中的应用[M].机械工业出版社,2005
[4]姜建山.FIR数字滤波器的MATLAB设计与DSP实现[J].电测与仪表.2006
[5]罗军辉、罗勇江等,《MATLAB7在数字信号处理中的应用》.北京:
机械工业出版社,2005
[6]楼顺天、李博函,《基于MATLAB的系统分析与设计一信号处理》.西安:
西安电子科技大学出版社,1998
[7]李勇、徐震等,《MATLAB辅助现代工程数字信号处理》.西安电子科技大学出版社,2002
[8]戴逸民、梁晓雯、裴小平,《基于DSP的现代电子系统设计》.北京:
电子工业出版社.2002
[9]苏金明、张莲花、刘波等,《MATLAB工具箱应用》.北京:
电子工业出版社.2004
[10]李真芳、苏涛、黄小宇,《DSP程序开发一一MATLAB调试及目标代码生成》.西安:
西安电子科技大学出版社,2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TMS320C54x FIR 滤波器 设计