您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > DSP原理及应用大作业
DSP原理及应用大作业题目:IIR算法的软件实验学生姓名:学号:院(系):信息工程学院专业:电子信息工程专业IIR算法实验摘要:本课题通过软件设计IIR数字滤波器,并对所设计的滤波器进行仿真:应用DSP集成开发环境—CCS调试程序,用TMS320F2812实现IIR数字滤波。具体工作包括:对IIR数字滤波器的基本理论进行分析和探讨。应用DSP集成开发环境调试程序,用TMS320F2812来实现IIR数字滤波。关键词:数字滤波器;DSP;TMS320F2812;无限冲激响应滤波器(IIR)。引言:21世纪是数字化的时代,随着信息处理技术的飞速发展,数字信号处理技术逐渐发展成为一门主流技术。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等。这些优势决定数字滤波器的应用越来越广泛。数字滤波器是数字信号处理中最重要的组成部分之一,被广泛应用于语音图像处理、数字通信、谱分析、模式识别、自动控制等领域。实验原理1.无限冲激响应数字滤波器的基础理论。2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3.数字滤波器系数的确定方法。4.根据要求设计低通IIR滤波器要求:低通巴特沃斯滤波器在其通带边缘1kHz处的增益为-3dB,12kHz处的阻带衰减为30dB,采样频率25kHz。设计:-确定待求通带边缘频率fp1Hz、待求阻带边缘频率fs1Hz和待求阻带衰减-20logδsdB。模拟边缘频率为:fp1=1000Hz,fs1=12000Hz阻带边缘衰减为:-20logδs=30dB-用Ω=2πf/fs把由Hz表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1和Ωs1。Ωp1=2πfp1/fs=2π1000/25000=0.08π弧度Ωs1=2πfs1/fs=2π12000/25000=0.96π弧度-计算预扭曲模拟频率以避免双线性变换带来的失真。由w=2fstan(Ω/2)求得wp1和ws1,单位为弧度/秒。wp1=2fstan(Ωp1/2)=6316.5弧度/秒ws1=2fstan(Ωs1/2)=794727.2弧度/秒-由已给定的阻带衰减-20logδs确定阻带边缘增益δs。因为-20logδs=30,所以logδs=-30/20,δs=0.03162-计算所需滤波器的阶数:714.0)5.63162.794727log(2)1)03162.0(1log()log(2)11log(2112pssn因此,一阶巴特沃斯滤波器就足以满足要求。-一阶模拟巴特沃斯滤波器的传输函数为:H(s)=wp1/(s+wp1)=6316.5/(s+6316.5)由双线性变换定义s=2fs(z-1)/(z+1)得到数字滤波器的传输函数为:113307.01)1(3346.05.631611500005.6316)(zzzzzH因此,差分方程为:y[n]=0.3307y[n-1]+0.3346x[n]+0.3346x[n-1]软件程序流程图开始初始化工作变量调用波形发生子程序产生混叠的波形(高频+低频)调用IIR滤波子程序计算当前输出波形发生计算步长用标准C的sin函数和cos函数计算当前波形值返回波形值IIR滤波用滤波器系数乘以保存的N-1个输入输出值和当前输入值并求和返回计算结果调试过程与步骤:1.实验准备-设置软件仿真模式。-启动CCS2.打开工程,浏览程序,工程目录为D:\dsp\t6\iir\iir.pjt3.编译并下载程序4.打开观察窗口:*选择菜单View-Graph-Time/Frequency…,进行如下设置:*选择菜单View-Graph-Time/Frequency…,进行如下设置:5.清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“ClearDisplay”功能。6.设置断点:在程序iir.c中有注释“/*请在此句上设置软件断点*/”的语句上置软件断点。7.运行并观察结果⑴选择“Debug”菜单的“RUN”项,或按F5键运行程序。⑵观察“IIR”窗口中时域图形;观察滤波效果。实验结果输入波形为一个低频率的正弦波与一个高频的余弦波叠加而成。如图:通过观察频域和时域图,得知:输入波形中的低频波形通过了滤波器,而高频部分则被衰减。IIR算法相对应C语言编程及汇编程序/*========================================================================================*/#includeDSP281x_Device.h//DSP281xHeaderfileIncludeFile#includeDSP281x_Examples.h//DSP281xExamplesIncludeFile#includef2812a.h#includemath.h#defineIIRNUMBER2#defineSIGNAL1F1000#defineSIGNAL2F4500#defineSAMPLEF10000#definePI3.1415926floatInputWave();floatIIR();floatfBn[IIRNUMBER]={0.0,0.7757};floatfAn[IIRNUMBER]={0.1122,0.1122};floatfXn[IIRNUMBER]={0.0};floatfYn[IIRNUMBER]={0.0};floatfInput,fOutput;floatfSignal1,fSignal2;floatfStepSignal1,fStepSignal2;floatf2PI;inti;floatfIn[256],fOut[256];intnIn,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();fIn[nIn]=fInput;nIn++;nIn%=256;fOutput=IIR();fOut[nOut]=fOutput;nOut++;if(nOut=256){nOut=0;/*请在此句上设置软件断点*/}}}floatInputWave(){for(i=IIRNUMBER-1;i0;i--){fXn[i]=fXn[i-1];fYn[i]=fYn[i-1];}fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;fYn[0]=0.0;fSignal1+=fStepSignal1;if(fSignal1=f2PI)fSignal1-=f2PI;fSignal2+=fStepSignal2;if(fSignal2=f2PI)fSignal2-=f2PI;return(fXn[0]);}floatIIR(){floatfSum;fSum=0.0;for(i=0;iIIRNUMBER;i++){fSum+=(fXn[i]*fAn[i]);fSum+=(fYn[i]*fBn[i]);}return(fSum);}/*========================================*/IIR:ADDBSP,#4MOVBAH,#0MOVBAL,#0MOVL*-SP[4],ACCMOVWDP,#0xFE00MOV@0,#0MOVAL,@0CMPBAL,#2SBL7,GEQL6:SETCSXMMOVLXAR4,#0x3F8016MOVACC,@01ADDL@XAR4,ACCMOVLACC,*+XAR4[0]MOVL*-SP[2],ACCMOVLXAR4,#0x3F8012MOVACC,@01ADDL@XAR4,ACCMOVLACC,*+XAR4[0]LCRFS$$MPYMOVL*-SP[2],ACCMOVLACC,*-SP[4]LCRFS$$ADDMOVL*-SP[4],ACCSETCSXMMOVWDP,#0xFE00MOVACC,@01MOVLXAR4,#0x3F801EADDL@XAR4,ACCMOVLACC,*+XAR4[0]MOVLXAR4,#0x3F801AMOVL*-SP[2],ACCMOVACC,@01ADDL@XAR4,ACCMOVLACC,*+XAR4[0]LCRFS$$MPYMOVL*-SP[2],ACCMOVLACC,*-SP[4]LCRFS$$ADDMOVL*-SP[4],ACCMOVWDP,#0xFE00INC@0MOVAL,@0CMPBAL,#2SBL6,LTL7:MOVLACC,*-SP[4]SUBBSP,#4LRETR/*=============================================================================*/结果分析:通过运行和观察实验结果,输入波形中的低频波形通过了滤波器,而高频部分则被衰减。经过对实验程序的阅读以及熟悉,了解了各种窗函数对波器特性的各自不同的影响。通过观察运行结果的图像,进一步熟悉了IIR数字滤波器特性。根据实验要求所涉及的低通IIR滤波器可以很好的完成无限冲击响应滤波器的算法实验。心得体会:我在老师认真负责的指导下,顺利地完成了关于DSP芯片TMS320F2812的八个实验,并从中收获很多。老师曾给我们讲DSPs芯片及DSP系统与信息类专业的一些课程有许多联系,以及DSP本身的许多特点。但是并不能理解老师所讲的内容,感觉很抽象,不知道从何处入手,但随着课程学习逐渐接近尾声,与此同时开始的实践实验,自己才逐渐深入全面的了解DSP,理论水平得到了一定程度的提高,但同时也处在一些问题。DSP设计实验涉及到多门课程的相关知识,这需要我们在课程的学习过程中,经常回顾一些基础理论知识,经过认真思考与分析,达到解决问题的目的。在这个过程中,我不仅复习了以前的一些知识,并且通过理论联系实际,对相关知识点有了更深层次的认识。从课前复习相关实验内容、原理到课题论文的完成,我收获了很多,学到了很多,受益匪浅。在这个过程中,我复习了数字滤波器的原理和设计方法,对DSP编程有了更深的认识和掌握了一定的编程能力。团结是成功的基石。在这几次的实验过程中,我们同学一起协作的精神得以充分的体现。当遇到困难的时候,同学与同学之间,同学与指导老师之间有了很好的交流和沟通,这也是实验能够认真完成的一重要因素。此外,我要感谢实验指导老师们以及助教老师,因为这些实验是在他们认真负责的态度下完成的。实验过程中他们在软件操作和相关理论、算法等方面给了我们耐心的指导,正是由于他们的付出,才能使我们顺利完成实验。从他们身上我懂得了做事要有严谨认真、勤于动脑,勤于实践的态度。
本文标题:DSP原理及应用大作业
链接地址:https://www.777doc.com/doc-4333426 .html