《DSP软件课程设计---FIR滤波器设计.doc》由会员分享,可在线阅读,更多相关《DSP软件课程设计---FIR滤波器设计.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录第1章 绪论.11.1设计背景.11.2设计要求.11.3设计思路简介.1第2章 系统开发平台与环境.21.1 CCS开发环境.22.2 SEED-DEC2812开发实验箱.2第3章 FIR滤波器设计过程.33.1 FIR滤波器设计总框图.33.2 FIR滤波器设计的原理.33.3 FIR滤波器的设计方法.4第4章 系统软件设计.54.1 程序流程图.54.2程序源代码.6第5章 系统仿真.115.1仿真设置.115.2 仿真图.12第6章 总结.16参考文献.17第1章 绪论1.1设计背景在信号处理中,滤波占有十分重要的地位。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很
2、多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。低通有限冲激响应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不
3、像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:系统总是稳定的;易实现线性相位;允许设计多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。1.2设计要求利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。1.3设计思路简介在TMS320C54x系统开发环境CCS(Code Composer Studio)下对FIR滤波器的DSP实现原理进行讨论。利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。第2章 系统开发平台与环境1.1
4、 CCS开发环境CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下图1.1所示的开发周期的所有阶段。图 1.12.2 SEED-DEC2812开发实验箱 SEED-DECxxxx系列嵌入式DSP开发板本着模块化、总线型、开放式、系列化的设计思想,采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成具有标准总线和相同物理尺寸的高性能嵌入式DSP开发板。SEED-DEC2812 嵌入式DSP开发板原理框图如图1.2所示:图 1.
5、2第3章 FIR滤波器设计过程3.1 FIR滤波器设计总框图FIR滤波器设计总框图如图3.1所示图3.1 FIR滤波器设计总框图3.2 FIR滤波器设计的原理设a i(i=0,1,2,N-1)为滤波器的冲激响应,输入信号为x(n),则FIR滤波器的输入输出关系为:FIR滤波器的结构如图3.2所示:图3.2 FIR滤波器的结构3.3 FIR滤波器的设计方法循环缓冲算法:对于N级的FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,滑窗中存放最新的N个输入样本。每次输入新的样本时,一新样本改写滑窗中的最老的数据,而滑窗中的其他数据不需要移动。利用片内BK(循环缓冲区长度)寄存器对滑窗
6、进行间接寻址,环缓冲区地址首位相邻。下面,以N=5的FIR滤波器循环缓冲区为例,说明循环缓冲区中数据是如何寻址的。5级循环缓冲区的结构如图3.3所示,顶部为低地址。图3.3 循环缓冲区的结构当第一次执行完之后,间接寻址的辅助寄存器指向x(n-4)。然后,从I/O口输入数据x(n+1),将原来存放x(n-4)的数据存储单元改写为x(n+1)。接着,进行第二次乘法累加运算,最后指向x(n-3)。然后从I/O口输入数据x(n+2) ,将原来存放 x(n-4)的数据存储器单元改写为x(n+2)。第4章 系统软件设计4.1 程序流程图程序流程图如图4.1所示图4.1 程序流程图4.2程序源代码4.2.1
7、 FILTER.c代码:#include DSP28_Device.h#include filter.h#include ext_inf.hunsigned int DataLong=1024;unsigned int i,j;unsigned int k= 0;unsigned short Ad_data2048;short Ad_data_signed2048;short filter_result1024;unsigned int convcount = 0;volatile unsigned int adconvover =0;interrupt void ISRTimer2(void
8、);interrupt void ad(void);void main(void)/*初始化系统*/InitSysCtrl();/*关中断*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中断*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable(); /初始化cputimer InitCpuTimers(); /*设置中断服务程序入口地址*/EALLOW;PieVectTable.TINT2 = &ISRTimer2;PieVectTable.ADCINT = &ad;EDIS; /*开中断*/IER |= M_INT1
9、; /ADC中断EINT; ERTM;/*设置CPU*/DINT;ConfigCpuTimer(&CpuTimer2, 150, 22); StartCpuTimer2(); /*开中断*/IER |= M_INT14;EINT;InitAdc();for(;)if (adconvover=1) /*fir滤波处理*/ for(i=0;i=16); _nassert(n=16); for(j=0;jm;j+) acc=0; for(i=0;i=m) break; else y0=(long)xi+j*(long)hi; acc=acc+y0; *y+=(short)(accs); 第5章 系统
10、仿真5.1仿真设置1.fir_filter(Ad_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR)和adconvover=0处设置断点2.在Graph Property Dialog中设置Start Address和Display Type如图5.1、图5.2、图5.3、图5.4图 5.1图 5.2图 5.3图 5.43.设置实验板输入信号的参数,再运行程序得到仿真图。5.2 仿真图(1)标准矩形波,频率为300Hz,振幅为800mV。滤波前的波形如图5.5和图5.6,滤波后的波形如图5.7和图5.8。图 5.5图 5.6
11、图 5.7图 5.8(2)噪声三角波,频率为400Hz,振幅为800mV。滤波前的波形如图5.9和图5.10,滤波后的波形如图5.11和图5.12。图 5.9图 5.10图 5.11图 5.12第6章 总结FIR滤波器的设计是数字信号处理技术的基础,也是DSP芯片的重要组成部分。FIR滤波器性能的好坏直接影响着DSP的运行速度和精度,对现代电子技术的发展起决定性作用,FIR滤波器的设计在以后的一段相当长的时间里将持续主导DSP,而DSP随着电子技术的不断发展,应用领域愈来愈广泛。这次课程设计实现了一个简单的FIR滤波器的设计,在罗老师的精心指导和帮助以及自己上网查找资料,较好的完成了课程设计的任务并达到了理想的目的。在这里我对罗老师表示感谢,感谢她的耐心和热心。通过这次课程设计使我对DSP芯片有了更深一步的了解,也不断的强化了自己的基础知识。参考文献1程佩青.数字信号处理教程M.北京:清华大学出版社,1999年2孙宗瀛,谢鸿林.TMS320C5xDSP原理设计与应用M.北京:清华大学出版社,2002年3乔瑞萍,崔涛,张芳娟.TMS320C54xDSP原理及应用M.西安:西安电子科技大学出版社,2005年4张雄伟. DSP芯片的原理与开发应用(第三版)M.北京:电子工业出版社,2003年5郑红.TMS320C54XDSP应用系统设计M. 北京:北京航空航天大学出版社,2002年
限制150内