1、 信息工程学院课程设计 信息工程系DSP课程设计报告书题 目: 基于TMS320VC5402的FIR数字滤波器的设计 专 业: 电气工程及其自动化 信息工程系课程设计任务书学 号 学生姓名 专业(班级)电气工程 设计题目基于TMS320VC5402的FIR数字滤波器的设计设计技术参数滤波器设计函数窗函数设计,FIR滤波器的matlab实现,FIR滤波器的dsp实现,设计要求1)绘制系统框图(VISIO);(2)包括电源设计、复位电路设计、时钟电路设计、存储器设计、A/D转换设计、JTAG接口设计等,用Protel软件绘制原理图和PCB图;(3)给出所设计的FIR低通滤波器的技术指标,用MATL
2、AB求解滤波器的参数并仿真;(4)给出程序流程图,编写程序,在CCS中完成仿真;(5)参考文献、论文格式规范。工作量5500字 图纸6张工作计划14周熟悉题目;15周图书馆查阅书籍;16周实验室做实验;17总结参考资料1 张萍. 基于MATLAB 与DSP 的FIR 数字滤波器的设计J . 中国科技信息,2007.2 吴燕波. 基于MATLABFIR 数字滤波器的设计J . 中国科技文献.3 Sanjit K. Mitra. 数字信号处理M . 孙洪,余翔宇,等译. 北京:电子工业出版社,2005.4 刘波,文忠,曾涯.MATLAB 信号处理M . 北京:电子工业出版 5 张雄伟,陈亮,徐光辉
3、. DSP芯片的原理与开发应用(第3版) M . 北京:电子工业出版社, 2003. 2010 年6 月 23 日 专业(班级): 课程设计题目: 基于TMS320VC5402的FIR数字滤波器的设计 指导教师评语: 成绩: 指导教师: 信息工程系课程设计成绩评定表 摘要 数字F IR 滤波器广泛地应用于数字信号处理领域。主要介绍了通过改进算法, 利用TM S320C5402 芯片的丰富指令和自动溢出保护功能, 采用窗函数法, 利用MATLAB 工具软件辅助设计和仿真,对信号进行低通滤波, 并使用CCS 应用软件进行仿真及调试, 实现了DSP 下数字低通滤波器的设计。关键词: F IR 数字滤
4、波器; 滤波器设计; 数字信号处理 AbstractF IR filter is w idely used in the digital signal p rocessing field. M ainly introducedimp rovement on arithmetic, using abundant injunctions and automatism overflow p rotective functionof TM S320C5402, thus adop ted the method of w indow function, in virtue of p rogramm in
5、g languageofMA TLAB. Furthermore, a simp lified design of an F IR filter w as also discussed w ith the analysisof the F IR structure. In th isw ay, it can be imp lemented easily on fixed2point of DSP slugKey words: F IR digital filters; filter design; DSP 目 录前言61任务提出与方案论证711 TMS320VC5402的主要特点71.2 TM
6、S320C5402 编程81.3 FIR数字滤波器92 总体设计102.1 FIR 滤波器的窗函数设计步骤102.2 FIR滤波器的matlab实现102.3FIR滤波器的dsp实现122.4滤波效果调试163 总结17参考文献18 前言随着信息时代和数字世界的到来,数字信号处理已成为当今一项极其重要的学科和技术领域。在此领域中经常遇到的问题是:如何将信号中冗余的成分去掉获得所需要的有用信号。其中的一个方法是利用有用信号和需要抑制的成分之间在频谱上的差别,设计一个滤波器使接收到的信号通过该系统后,有用信号的成分保持不变而其它成分则大大衰减。FIR 的实现是非递归的,稳定性好,精度高,而且可以获
7、得严格的线性相位特性。因此,它在数字音频、图像处理、数据传输等领域得到广泛应用。 1 任务提出与方案论证 FIR 滤波器的设计方法有窗函数设计法和频率采样设计法, 下面扼要介绍窗函数设计法。窗函数设计法的基本思想是要选取某一适合的理想频率特性, 然后将它的脉冲响应截断以得到一个线性相位和因果的F IR 滤波器。因此, 这种方法的重点在于选择某种恰当的窗函数和一个合适的理想滤波器。假设所希望得到的滤波器的理想响应为F IR 滤波器的设计就在于寻找一个传递函数去逼近,设由于的矩形频率特性, 故ai (n) 一定是无限长的序列, 而且是非因果的, 要设计的F IR 滤波器的a (n) 必然是有限长的
8、, 所以要用有限长的a(n) 来逼近无限长的ai (n) , 最有效的方法是截断ai(n) , 或者用一个有限长的窗函数序列w (n) 来截取ai (n) , 即a (n) = w (n) ai (n) 因此, 窗函数序列的形状及长度选择很关键。在设计过程中, 可由所设计滤波器的过度带宽和阻带最小衰减的要求选定窗函数w (n) 的形状。 1.1 TMS320VC5402的主要特点:TMS320VC5402是TI公司于1999年10月推出的性价比极高的定点数字信号处理器(DSP)。运算速度高达100MIPS。图1是它的内部硬件组成框图,包括:CPU,总线,存储器,在片外设电路等。主要特点如下:
9、由一条程序总线、三条数据总线和四条地址总线构成增强型哈佛结构; 40位算术逻辑单元(ALU),包括一个40位桶形移位寄存器和两个独立的40位累加器; 17bitx17bit并行乘法器单元和一个专用的40位加法器,用于非流水线的单周期乘法/累加(MAC)操作; 比较、选择、储存单元(CSSU),用于维特比加法/比较选择; 两个地址发生器,包括8个辅助寄存器(AR0AR7)和2个辅助寄存器算术单元(ARAU0、ARAU1); 192K字16bit可寻址的存储器空间(64K字的程序空间、64K字的数据空间、64K字的I/O空间),片内提供16K双存取RAM,4K ROM; 在片外围电路包括:软件可编
10、程等待状态发生器、片内锁相环(PLL)时钟发生器、2个多通道带缓冲串行接口(McBSP)、2个可编程的定时器等;除了上述高性能的硬件结构外,TMS320VC5402还提供了先进的指令集,实现单指令重复和块重复、32位长操作指令、具有并行存储和并行加载的算术指令、一条指令同时读2或3个操作数、从中断快速返回指令。1.2TMS320C5402 编程芯片TM S320C5402 有7 种寻址方式可供利用: 立即数寻址、绝对寻址、直接寻址、累加器寻址间接寻址、存储器映像寄存器寻址、堆栈寻址。其中绝对寻址、直接寻址、间接寻址和存储器映像寄存器寻址在编程中用得比较频繁。而在一般的情况下, 应首先使用间接寻
11、址和存储器映像寄存器寻址, 因为这样可以节省指令周期。在使用直接寻址时, 一般选用DP 寄存器的直接寻址(DP - ReferencedA ddressing) 方式。此时, 存储器被分为512 页, 地址0 127, 这样一个确定的地址由DP 值和指令的地址域两部分确定。所以选取DP 值的直接寻址方式时, 须设定DP 值, 这样在程序实现时比较麻烦, 通用的做法是采用TM S320C5402 提供的伪指令功能, 因为伪指令不占用程序的执行空间和时间。加上TM S320C5402 的多总线技术, 提供了很多单字单指令周期的并行指令, 如并行装入和存储指令、并行存储及加指令、并行存储与乘指令,
12、在程序中恰当地加入这些指令, 可以提高程序的执行效率。在实过程中, 滤波器的通带截止频率和阻带下限截止频率分别为200 Hz 和500 Hz. 另外,C5402 芯片在使用MAC 或MA S 指令时, 首先对乘法结果进行溢出保护, 即8000H 8000H 得到结果7FFFFFFFH, 然后再进行并行的加或减的运算。这样就进一步有效地减少了溢出, 提高了F IR 滤波器的性能, 基本上克服了一般F IR 滤波器对输入信号有衰减。通过MA TLAB 编程仿真, 得到滤波器系数如下:Sec1b01. 0000000b11. 3328459b21. 0000000a01. 0000000a1- 0.
13、 4316700a20. 7075742Sec2b01. 0000000b11. 8611640b21. 0000000a01. 0000000a1- 0. 7714902a20. 26176441.3 FIR数字滤波器FIR滤波器实质上就是一个分节的延迟线,把每一节的输出用滤波器系数进行加权累加,便得到滤波器的输出结果,它总是稳定并且可实现的。在一些工程实际应用(如:图像处理、数据调制解调)中,往往对相位要求较高。FIR滤波器可以实现严格的线性相位,从而得到了广泛应用。它的差分方程数学表达式为: (1)式中,N是FIR滤波器的抽头数,x(n)表示在n 时刻输入的信号样值,h(n)表示滤波器的
14、第n级抽头系数。横截型FIR滤波器的结构如图2所示 2总体设计 2.1 FIR 滤波器的窗函数设计步骤: (1) 由数字滤波器理想特性Hd ( ejw ) 进行傅里叶逆变换,获得理想滤波器的单位脉冲响应hd ( n) 。假设理想低通滤波器的截止频率为wc ,其幅频特性为: 或(2) 由性能指标确定窗函数w ( n) 和窗口长度N ,由过渡带近似于窗函数主瓣宽度求得窗口长度。(3) 求滤波器的单位脉冲响应h ( n) =hd ( n) w ( n) 。(4) 检验滤波器的性能指标。2.2 FIR滤波器的matlab实现MATLAB信号处理工具箱中的各种FIR数字滤波器设计函数都是采用双线性变换法
15、。滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。要求调用如上函数直接设计fIR数字滤波器。数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离。 设计一个低通滤波器,性能指标为通
16、带01000Hz ,阻带截止频率为2000Hz ,通带波动1 % ,阻带波动5 % ,采样频率为10000Hz ,采用Kaiser 窗。主要程序如下:fc = 1000 ;fs = 10000 ; n , Wn , beta , ftype = kaiserord ( 1000 2000 1 0 ,0. 05 0. 05 ,fs) ; %得出滤波器的阶数w = 2 3 fcPfs %模拟到数字滤波器的技术指标的转换window = kaiser (n + 1 ,beta) ; %使用kaiser 窗函数b =fir1 (n ,w ,window) ; %使用标准频率响应的加窗设计函数fir1f
17、reqz (b ,1 ,512) ; %数字滤波器频率响应;t = (1 :100)Pfs ;s = sin (2 3 pi 3 t 3 800) + sin (2 3 pi 3 t 3 3000) +sin (2 3 pi 3 t 3 4000) ; %混和正弦波信号sf =filter (b ,1 ,s) ; %对信号s 进行滤波滤波器长度为13 ,归一化截止频率为0. 2 ,凯塞窗控制旁瓣的参数为1. 5099 ,以及传递给函数firl用于指定滤波器类型的ftype 为low ,同时得到如图1 - 2所示的结果,可以看出它能满足设计要求。2.3 FIR滤波器的dsp实现2.3.2 DSP
18、程序设计可在CCS 开发环境中完成,CCS提供有C 编译器、汇编器等产生程序代码的工具。低通滤波器的程序如下:#include #include #include #include #define PI 3.1415926void main()float temp;int result,num,feq,volume,i;FILE *fp;char buf20;char name128;printf(Please enter the DAT filename:n);scanf(%s,buf);printf(Please enter the number of point:n);scanf(%d,
19、&num);printf(Please enter the number of FEQ:n);scanf(%d,&feq);feq=feq;printf(Please enter the Volume:n);scanf(%d,&volume);fp=fopen(buf,wb);sprintf(buf,1651 1 0 1 0n);fwrite(buf,strlen(buf),1,fp);for(i=0;inum;i+)temp = sin(i*feq*2*PI/2048)*volume;result=(int)temp;sprintf(buf,0x%xn,result);fwrite(buf,
20、strlen(buf),1,fp);fclose(fp);printf(Program End!n); 下面为一个FIR低通、带通、高通的通用程序HIGHPASS.set0 ;if you want to use ,please set the value to 1BANDPASS.set0LOWPASS.set1.globalstart,fir.mmregsCOFF_FIR_START: .sect coff_fir.if LOWPASS.includelowpasslowpass.inc.elseif BANDPASS.includebandpassbandpass.inc.else .i
21、ncludehighpasshighpass.inc.endifK_FIR_BFFR.set32d_data_buffer.usectfir_bfr,64FIR_DP.usectfir_vars,0d_filin.usectfir_vars,1d_filout .usectfir_vars,100h.asgAR4,FIR_DATA_P.asgAR6,INBUF_P.asgAR7,OUTBUF_P.sectfir_prog nopstart:LD#FIR_DP,DPSTM#d_data_buffer,FIR_DATA_PRPTZ A,#K_FIR_BFFR-1STLA,*FIR_DATA_P+S
22、TM#d_filin,INBUF_PSTM#d_filout,OUTBUF_P STM#100h,BKfir_loop: NOP ;Add Breakpoint & porbe pointLD*INBUF_P,ACALLfirSTHA,*OUTBUF_P+%main_end:bfir_loop ;Add Breakpointfir:SSBXSXM SSBX FRCT STM#d_data_buffer,FIR_DATA_PSTLA,*FIR_DATA_PSTM#(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P fir_task: RPTZA,#K_FIR_BFFR
23、-1MACD*FIR_DATA_P-,COFF_FIR_START,ARET.end 在CCS中仿真的波形图如下:2.4滤波效果调试将设计的低通滤波器的配置文件下载到器件中进行实际滤波测试,用示波器观察各个频率点上输出信号的幅值大小。 由滤波测试结果可知,该 FIR 滤波电路完全达到低通滤波器 5 MHz 的采样频率,1.5 MHz 的截止频率, 以及 16 阶的技术指标参数。3 总结 本设计中通过滤波,滤除了输入信号中的高频成分,改善了波形质量。将MATLAB 的功能与DSP结合。输入信号进行实时滤波处理。考虑到整个系统的可行性,将所设计好的数字滤波器在MATLAB中进行了系统仿真,使得整个
24、系统的性能达到最好。 4 参考文献参考文献:1 张萍. 基于MATLAB 与DSP 的FIR 数字滤波器的设计J . 中国科技信息,2007.2 吴燕波. 基于MATLABFIR 数字滤波器的设计J . 中国科技文献.3 Sanjit K. Mitra. 数字信号处理M . 孙洪,余翔宇,等译. 北京:电子工业出版社,2005.4 刘波,文忠,曾涯.MATLAB 信号处理M . 北京:电子工业出版 5 张雄伟,陈亮,徐光辉. DSP芯片的原理与开发应用(第3版) M . 北京:电子工业出版社, 2003. 6 乔瑞萍,崔涛,张芳娟. TMS320C54x原理及应用M . 西安:西安电子科技大学
25、出版社, 2005. 7 刘益成. TMS320C54x DSP应用程序设计与开发M . 北京:北京航空航天大学出版社, 2002. 8 张勇,曾炽祥,周好斌. TMS320C5000 系列DSP汇编语言程序设计M . 西安:西安电子科技大学出版社, 2004. 9 卢山,田野,郭黎利. 利用DSP技术实现F IR滤波器 J . 应用科技, 2002, 29 (11) : 19 - 21. 10 文玮玮,董金明. 数字滤波器在定点DSP上的实现 J . 遥测遥控, 2001, 23 (1) : 36 - 41. 11 孙克梅,刘洋. 数字滤波器在DSP上的实现 J . 沈阳航空工业学院学报, 2005, 22 (3) : 53 - 54. 12 周金治. 基于Matlab与DSP的语音信号F IR滤波 J . 兵工自动化, 2005 , 24 (6) : 66 - 67. 13 张伟利,朱煜. F IR滤波器在TMS320C5402中的实现 J . 微处理机, 2005 (2) : 4 - 6.19