无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc

上传人:laozhun 文档编号:4149358 上传时间:2023-04-07 格式:DOC 页数:21 大小:632KB
返回 下载 相关 举报
无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc_第1页
第1页 / 共21页
无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc_第2页
第2页 / 共21页
无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc_第3页
第3页 / 共21页
无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc_第4页
第4页 / 共21页
无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc》由会员分享,可在线阅读,更多相关《无限冲激响应滤波器(IIR)算法硬件实现DSP论文.doc(21页珍藏版)》请在三一办公上搜索。

1、无限冲激响应滤波器(IIR)算法硬件实现摘要20世纪60年代以来,随着大规模集成电路、数字计算机等信息技术的飞速发展,数字信号处理(Digital Signal Processing, DSP)技术应运而生并得到快速发展。在过去的20多年时间里,DSP在理论和应用方面不断地进步和完善,在越来越多的应用领域中迅速取代传统的模拟信号处理方法,并开辟出出许多新的应用领域。目前数字信号处理技术已经在通信、雷达、航空航天、工业控制、生物医学控制、生物医学工程、网络及家电领域得到极为广泛的应用,数字化时代正在到来。1928年,美国德州仪器公司(Texas Instruments Incorporation

2、,简称TI公司)推出该公司的第一款DSPs芯片,很快DSPs芯片就以其数字器件特有的稳定性、可重复性、可大规模集成和易于实现DSP算法等优点,为数字信号处理技术带来了更大的发展和应用前景。采用各种类型DSPs实现系统的数字化处理和控制已经成为未来发展的趋势,并且睡着DSPs运算能力的不断提高,数字信号处理的研究重点由最初的非实用转向高速实时应用。本文主要是应用TI公司生产的一款芯片TMS320F2812 DSPs来实现无限冲击响应滤波器(IIR)算法。本文的主要工作可归结如下:1、 介绍无限冲激响应滤波器(IIR)实现的原理。2、 详细分析无限冲激响应滤波器(IIR)算法。3、 画出无限冲激响

3、应滤波器(IIR)实现的硬件框图及软件流程图。4、 实验调试过程及步骤。5、 分析在CCS软仿真及硬仿真环境下实验结果。6、 反汇编一个小程序及对DSPs实现IIR算法理解。7、 对学习DSPs理论课及做实验的心得体会。通过软件仿真及硬件实现结果表明,用DSPs实现无限冲激响应滤波器(IIR)算法能够很好的达到预期的效果。关键词:IIR, , DSPs, 无限冲激响应,CCS,滤波器引言硬件实现无限冲激响应滤波器(IIR)算法有多种方法,本文介绍用TI公司生产的一款芯片TMS320F2812 DSPs来实现无限冲激响应滤波器(IIR)算法,其中涉及无限冲激响应滤波器(IIR)算法软件仿真和硬件

4、实现。通过实验分析,我们可以看出实验结果和理论结果符合的很好,因此MS320F2812 DSPs可以很好的实现无限冲激响应滤波器的滤波特性。实验原理1、 无限冲激响应数字滤波器的理论基础。2、 模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝赛尔滤波器)。3、 数字滤波器系数的确定方法。4、 根据要求设计低通IIR滤波器要求:低通巴特沃斯滤波器在其通带边缘1kHz处的增益为-3dB,12kHz处的阻带衰减为30的dB,采样频率25kHz。设计:-确定待求通带边缘频率fp1Hz、待求阻带边缘频率fs1Hz和待求阻带衰减-20logs dB。模拟边缘频率为:fp1=1000 kHz,

5、fs1=12000kHz,阻带边缘衰减为:-20logs dB=30dB。-用=2f/fs把由Hz表示的待求边缘频率转换成弧度表示的数字频率,得到p1,s1p1=2fp1/fs1 =21000/25000=0.08弧度s1=2fs1/fs =212000/25000=0.96弧度 -计算预扭曲线模拟频率以避免双线性变换带来的失真。由w=2fstan(/2)求得wp1和ws1,单位为弧度/秒wp1=2fstan(p1/2)=6316.5弧度/秒ws1=2fstan(s1/2)=794727.2弧度/秒 -由已给定的阻带衰减-20logs dB确定阻带边缘增益s。 因为-20logs dB=30d

6、B,所以logs=-30/20,s=0.03162-计算所需滤波器阶数:因此,一阶巴特沃斯滤波器就满足要求。-一阶巴特沃斯滤波器的传输函数为:H(s) = wp1/(s+wp1)=6316.5/(s+6316.5)有双线性变换定义s=2fs(z-1)/(z+1)得到的数字滤波器的传输函数为:因此,差分方程为:yn=0.7757yn-1+0.1122xn+0.1122xn-1.硬件框图因此,差分方程为:yn=0.7757yn-1+0.1122xn+0.1122xn-1.硬件框图D/A4路12bit数据地址控制I/OPWMSPISPI4个用户可控开关LEDCPLD扩展DSP引脚RAM:128K*1

7、6bit RAM:128K*16bitDSP总线RS232CAN驱动16路,12bitJATGTMS320F2812PGFAJTAGPORT 片上资源 主频:150MHzA/D RAM:128K*16bit FLASH:128K*16bit CANA/DF2812-A评估板原理图液晶显示及键盘模块信号源模块DSP评估板模块仿真器模块PC机实验中用到的主要硬件模块软件流程图开始初始化工作变量调用波形发生子程序产生混叠的波形(高频+低频)调用IIR滤波器子程序计算当前输出波形发生计算步长用标准C的函数sin函数和cos函数计算当前波形值返回波形值返回计算结果IIR波形用滤波器系数乘以保存的N-1个

8、输入输出值和当前输入值并求和返回计算结果调试过程和步骤1. 实验准备(1) 连接实验设备。(2) 准备信号源进行AD输入。1) 取出2根实验箱附带的信号线。2) 用1根信号线连接实验箱左侧信号源的波形输出A端口和“A/D输入”模块的“ADCIN0”插座,注意插头要插牢、到底。这样,信号源波形输出A的输出波形即可送到 ICETEK-F2812A板的AD输入通道0.3) 用1根信号线连接实验箱左侧信号源的波形输出B端口和“A/D输入”模块的“ADCIN1”插座,注意插头要插牢、到底。这样,信号源波形输出A的输出波形即可送到 ICETEK-F2812A板的AD输入通道1.4) 设置波形输出A:-向内

9、侧按波形频率选择按钮,直到标有正弦波的指示灯亮。-上下调节波形频率选择按钮,直到标有100-1KHz的指示灯亮。-调节幅值调整旋钮,将波形输出A的幅值调到适当位置。 5)设置波形输出B: -向内侧按波形频率选择按钮,直到标有正弦波的指示灯亮。-上下调节波形频率选择按钮,直到标有1K-10KHz的指示灯亮。-调节幅值调整旋钮,将波形输出B的幅值调到适当位置。注意:由于模数输入信号未经任何转换就进入DSP,所以必须保证输入的模拟信号的幅度在03V之间。必须用示波器检测信号范围,保证最小值0V,最大值3V,否则容易损坏DSP芯片的模数采集模块。2. 设置 Code Composer Studio 2

10、.21在硬仿真(Emulator)方式下运行。3. 启动Code Composer Studio 2.21 选择菜单Debug-Reset CPU。4. 打开工程文件 工程目录:D:dspt8mixeiirmixeriir.pjt5. 编译、下载程序,选择菜单Debug-Go Main,使程序运行到 main 函数的入口位置。6. 观察窗口 -打开IIR.c,查看源代码。7. 观察程序运行结果 按CTR控制板的K6键,实现滤波显示,K7键实现混频显示,按K8键实现A、B两信号源分屏显示。8. 观察动态效果,调节信号源输出,观察滤波器输出,改变信号源输入的波形、频率参数,观察动态效果。9. 退出

11、CCS。实验结果一、软仿真环境下的实验结果1. 作如下设置及得到的波形图图12作如下设置得到的波形图图23. 作如下设置得到的波形图图34. 作如下设置得到的波形图图44. 把四幅图片放着一起比较如下图5二、硬仿真环境下的实验结果1. 按CTR控制板的K6键观察到的波形图62. 按K7键观察到的波形图73. 按K8键观察到的波形图8实验结果分析1. 软仿真结果分析-图1是信号经过调制后的模型,毛刺代表其高频分量。-图3是图1中信号的频域图形,从频域可以看出,其频谱既含有低频分量,又含有高频分量。-图2调制信号经过无限冲击响应滤波器(IIR)滤波之后得到的波形。-图4图2中信号的频域图形,从频域

12、可以看出,经过无限冲击响应滤波器(IIR)滤波之后只剩下低频分量,高频分量几乎衰减为0。-图5把四幅图放在一块比较,可以显而易见的看出图形滤波前后的差别,经比较可以看出,在软仿真条件下,用TMS320F2812 DSPs来实现的无限冲击响应滤波器(IIR)具有较好的滤波性能。2.硬仿真结果分析 -图 6 上面为低频信号,下面为高频信号。 -图7为两信号相乘的结果,即调制的结果。 -图8为调制信号经无限冲击响应滤波器(IIR)的结果。比较图6和图8我们可以发现,两图的波形几乎完全相同,由此我们可以得出如下结论: 用TMS320F2812 DSPs来实现的无限冲击响应滤波器(IIR)具有较好的滤波

13、性能。程序算法分析及反汇编1、根据自己的理解,给iir.c程序添加备注#include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include File#include f2812a.h#includemath.h#define IIRNUMBER 2#define SIGNAL1F 1000#define SIGNAL2F 4500#define SAMPLEF 10000#define PI 3.1415926float InputWav

14、e();float IIR();float fBnIIRNUMBER= 0,0.7757 ; /定义差分方程y(n)系数,并赋值float fAnIIRNUMBER= 0.1122,0.1122 ; /定义差分方程x(n)的系数,并赋值float fXnIIRNUMBER= 0.0 ; /定义输入序列float fYnIIRNUMBER= 0.0 ; /定义输出序列float fInput,fOutput; /定义输入,输出float fSignal1,fSignal2;float fStepSignal1,fStepSignal2; /定义第一路信号周期,第二路信号周期float f2PI;

15、 /定义2*piint i;float fIn256,fOut256;int nIn,nOut;main(void) nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;/fStepSignal1=2*PI/30;/fStepSignal2=2*PI*1.4;fStepSignal1=2*PI/50; / 第一路信号周期fStepSignal2=2*PI/2.5; /第二路信号周期while ( 1 )fInput=InputWave(); /输入波形fInnIn=fInput;nIn+; nIn%=256;fOutput=IIR(); /

16、IIR滤波fOutnOut=fOutput; /输出波形nOut+;if ( nOut=256 )nOut=0;/* 请在此句上设置软件断点 */ float InputWave() /输入波形函数for ( i=IIRNUMBER-1;i0;i- )fXni=fXni-1;fYni=fYni-1;fXn0=sin(fSignal1)+cos(fSignal2)/6.0;fYn0=0.0;fSignal1+=fStepSignal1; /低频信号if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2; /高频信号if ( fSigna

17、l2=f2PI )fSignal2-=f2PI;return(fXn0); /返回调制信号float IIR()float fSum;fSum=0.0;for ( i=0;iIIRNUMBER;i+ )fSum+=(fXni*fAni); /本程序的算法所在,在此实现滤波fSum+=(fYni*fBni); /本程序的算法所在,在此实现滤波return(fSum);2、本实验实现滤波的算法就是: yn=0.7757yn-1+0.1122xn+0.1122xn-1.通过此算法可以滤去信号的高频分量。3、自己对照着C语言写的汇编语言小程序varx .word 0x0002vary .word 0x

18、0001varz .word 0x0000start:MOVW DP,#varxL1:MOV AL,varxADD AL,varyMOV varz,ALSB L1,UNC endint x,y,z;main() x=1;y=2; while(1) z=x+y; 4、实现算法(fSum+=(fXni*fAni); fSum+=(fYni*fBni);)的汇编语言:IIR:ADDB SP,#4MOVB AH,#0MOVB AL,#0MOVL *-SP4,ACCMOVW DP,#0xFE00MOV 0,#0MOV AL,0CMPB AL,#2SB L7,GEQL6:SETC SXMMOVL XAR4

19、,#0x3F8016MOV ACC,0 1ADDL XAR4,ACCMOVL ACC,*+XAR40MOVL *-SP2,ACCMOVL XAR4,#0x3F8012MOV ACC,0 1ADDL XAR4,ACCMOVL ACC,*+XAR40LCR FS$MPYMOVL *-SP2,ACCMOVL ACC,*-SP4 LCR FS$ADDMOVL *-SP4,ACC结束语心得体会这学期学习了王院长教授DSP原理与应用技术这本书,收获很多。DSP对我们来说是一门新的知识,是一门综合性很强的专业课程,觉得它学起来应该不是很容易。这门课一开始,王院长就告诉我们如何学习这门课,因为这门课对我们来说

20、比较陌生,是一门全新的课。王院长给我们说DSPs是一门实践性很强的课,学生往往在学习过程中和实际开发过程相脱节,因此对DSPs的一些基本概念只停留在文字的解释上,形不成系统的概念,无法与实践的电路相联系。王院长告诉我们初学者学习这门课时应该把基本概念、逻辑概念、物理概念相互联系起来,学会三者之间的对应。由于DSPs涉及的内容很多,王院长告诉我们要学会框架是的学习方法,所谓框架是的学习方法,就是要抓住课程主要的知识点,不要一开始就陷入众多的寄存器、汇编指令及片内外设的具体应用中,而应该先掌握DSPs芯片的主要知识体系,切实掌握仿真、实时性、系统等概念的内涵。在课程学习过程中我体会到,只有按照王院

21、长所说的学习方法才能跟上课的进度,因为书上的内容太多,不可能全部记着,只有主要的知识体系才能掌握。理论课程结束之后,我们紧接着就开始了实验课。因为DSPs是一门实践性很强的课程,所以实验课对我们来说是很重要的。我们一共做了八个实验,在这八个实验的过程中收获了不少经验教训。我们实验用的软件是CCS,硬件是DSP实验箱。在做实验过程中一定的看清实验步骤严格按实验步骤操作,不然很轻则造成不必要的麻烦,重则可能导致实验设备的损坏。做完八个试验后,我的体会是,在做每个实验之前,最好把实验内容看一遍,弄明白实验原理,熟悉实验步骤,这样做实验室才能做到有的放矢。在软仿真环境下做的实验,有时间的话可以在宿舍先

22、做一遍,在做的过程中如果遇到不能解决的问题,在实验室做实验的时候可以向助教请教解决。即使在宿舍做实验没有遇到问题,对我们来说也是有好处的,因为在宿舍已经做过一遍,所以在实验室我们可以轻车熟路的做下去,快速的做完规定的实验,剩余的时间我们可以看你做过实验的程序,争取在实验室里把程序给看明白。在实验室看程序好处多多,当遇到不懂的语句时,我们可以请教助教,如果在其他地方看程序,恐怕就没用这么好的条件了。做硬仿真实验时,由于宿舍没有试验箱,我们不可能在宿舍做,所以在做硬仿真实验之前,我们一定要做好预习准备工作,在实验过程中要做到细致、小心,因为实践操作是一个很严谨过程,任何一个步骤出现问题,也许就得必

23、须重新开始,这样会很浪费实验时间的。在实验室中有这个小体会,有时候程序出现问题没办法解决时,可以重启电脑,因为实验室D盘是受保护的,重启后会恢复原来状态,重启后接着做就没事了。做实验难免要的循规蹈矩、认认真真的的做,开始我觉得实验会很枯燥,但后来发现不是这样的,只要深入进去做,做实验还是有很多乐趣的。举一个例子来说明,在实验4中第三个小实验是液晶显示器控制现实的实验。我做到这个实验后,看了一下源程序,发现源程序还是比较容易的,就想尝试着自己在液晶显示器上画点儿东西。于是我就利用程序里的画直线的函数,修改程序。先画了一个简单的“十”,看到“十”显示在液晶显示器上上,感觉很兴奋,就又想画一个笑脸,

24、又画了一个“十”字作为眼睛,当两个“十”字成功的显示在液晶显示器上时,感觉我们离成功仅有一步之遥了,我们再接再厉,为笑脸画起“嘴”来,修改程序运行之后,发现和预想的效果不大一样,我们开始找问题,当找到问题,准备重新修改程序时,实验的时间结束了。虽然没有达到要的效果,但能通过自己改程序,显示出一定的东西,还是觉得很有成就感的。总之,在学习DSPs理论课和实验中获得了许多东西,有乐趣,有经验,有教训。学习理论课教会了我学习这类课的学习方法。在实验使我对课本上所学的有关DSPs的知识有了更进一步的认识,提高了我的实验技能,锻炼了我的动手能力;更重要的是经过实验课,我体会到做什么事都要有耐心,都要认真做,在实验中如果粗心大意,一个实验花很长时间也不一定能做出来,如果静下心来认真做,很多时候实验可以很快的做出来,因此,在做实验使我感悟到作风严谨,做事细心的重要性。

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号