欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新DSP课程设计报告—刘雅琪.doc

    • 资源ID:34720911       资源大小:612.50KB        全文页数:54页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新DSP课程设计报告—刘雅琪.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateDSP课程设计报告刘雅琪金 陵 科 技 学 院一、 课程设计的目的和要求1.1课程设计目的:本课程是DSP技术类课程配套的课程设计,要求学生通过高级语言或汇编语言编程实现较复杂的功能。通过课程设计,使学生加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。 1.2课程设计要求1、认真查阅资料2、课程设计前认真预习3、遵守课程设计时间安排4、认真保质保量完成设计要求5、认真书写报告二、系统功能介绍及总体设计方案21 功能介绍 随着信息技术和计算机技术的飞速发展,数字信号处理技术在众多领域得到广泛应用。数字滤波器由于其精度高、 稳定性好、 使用灵活等优点,广泛应用在各种数字信号处理领域。数字滤波器根据冲击响应函数的时域特性,可以分为 FIR(有限长冲激响应滤波器)和 IIR(无限长冲激响应滤波器) 。FIR 滤波器与 IIR 滤波器相比,具有严格的线性相位,幅度特性可任意等优点。而且, FIR 滤波器的单位抽样响应是有限长的,故一定是稳定的,他又可以用快速傅里叶变换( FFT)算法来实现过滤信号,可大大提高运算效率。本课程设计的是一个等波纹FIR低通滤波器,其具体参数为:采样频率=1000Hz,通带频率=150Hz截止频率=250Hz,通带衰减=0.5dB阻带衰减=80dB。22 总体设计方案: 先进行Matlab程序设计产生待滤波数据(借助设计工具FDATOOL产生设计系数),将其导入CCS,在CCS上进行仿真调试运行,得到了输入和输出的波形及其频谱。MATLAB编程产生待滤波数据观察输入输出波形CCSMATLAB滤波器设计工具FDATOOL设计系数 图1 总体设计框图三、主要设计内容和步骤3.1 FIR数字滤波器的原理分析3.1.1 FIR数字滤波器数字滤波器原理一般具有如下差分方程 (l)式中为输入序列,为输出序列,和为滤波器系数,N是滤波器阶数。当所有的均为零,则有 (2)(2)式是FIR滤波器的差分方程,其一般形式为 (3)对(3)式进行变换,整理后可得FIR滤波器的传递函数FIR的直接型结构: 图2 FIR的直接型结构 FIR滤波器最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位冲激响应是一个有限长序列。如果是实数,且满足偶对称或奇对称的条件,即或,则滤波器具有线性相位特性。偶对称线性相位FIR滤波器(N为偶数)的差分方程表达式为:线性相位FIR滤波器是用得最多的FIR滤波器。 FIR滤波器不断地对输入样本延时后,再作乘法累加算法,将滤波结果输出,因此FIR滤波算法实际上是一种乘法累加运算。在数字滤波器中,FIR滤波器的最主要特点是没有反馈回路,故不存在不稳定的问题。同时可以在随意设置幅度特性的同时,保证精确无误的线性相位。稳定的线性相位特性是FIR滤波器的突出优点。 3.1.2 系数对称的FIR滤波器对于系数对称的FIR滤波器,由于其具有线性相位特性,因此应用很广,特别是对相位失真要求很高的场合,如调制解调器(MODEM)。一个N=8的FIR滤波器,若,就是对称FIR滤波器,其输出方程为:总共有8次乘法和7次加法。如果改写成:则变成4次乘法和7次加法。可见乘法运算的次数减少了一半。这是对称FIR的有一个优点。 对称FIR滤波器的C54x实现的要点(1) 在数据存储区中开辟两个循环缓冲区,New循环缓冲区中存放N/2=4个新数据;Old循环缓冲区中存放老数据。循环缓冲区的长度为N/2。 x(n-4) x(n-5)x(n-6)x(n-7)数据存储器 New循环缓冲区 Old循环缓冲区x(n) x(n-3) x(n-2) x(n-1)AR280h88h AR38Bh8Ah89h82h83h81h 程序存储器COEF系数表 高地址低地址 图3(2)设置循环缓冲区指针,AR2指向中最新的数据,AR3指向中最老的数据。(3)在程序存储器中设置系数表。(4)(累加器A的高位) (5)将累加器B清0,重复执行4次(i=0,1,2,) *系数 系数指针(PAR)加1 AR2和AR3减1(6)保存和输出结果(结果在BH中)(7)修正数据指针,让AR2和AR3分别指向New缓冲区中最新的数据和Old缓冲区中最老的数据。(8)用New缓冲区中最老的数据替代Old缓冲区中最老的数据。Old缓冲区指针减1。(9)输入一个新数据替代New缓冲区中最老的数据。重复执行第(4)(9)步3.1.3 关键指令在编程中要用到FIRS(系数对称有限冲激响应滤波器)指令,其操作如下:FIRS Xmem,Ymem,Pmad执行 PmadPAR 当(B)+(A(32-16)*(由PAR寻址Pmem)B(Xmem)+(Ymem)<<16A(PAR)+1PAR(RC)-1RCFIRS指令在同一个机器周期内,通过C和D总线读2次数据存储器,同时通过P总线读一个系数。3.2 Matlab的仿真及滤波器系数的确定 设计FIR滤波器,关键是得到正确的滤波器系数。按照技术指标的要求,进行Matlab 程序设计。运行后生成的图像如下: 观察图像可知在频率为50和350Hz上有波形,后面为镜像显示。利用Matlab 中FDATOOL 工具设计好滤波器,从FDATOOL 向CCS 输出滤波器系数。Matlab 中FDATOOL 工具设计好滤波器以后,可以利用C语言头文件输出滤波器系数,将头文件添加到工程中, 编译连接生成可执行文件。 在把可执行文件加载到目标DSP后,会给头文件中的滤波器系数分配一个静态存储空间,滤波器系数就放入此存储空间中。或者可以直接把滤波器系数输出到DSP 的存储器中。FDATOOL设计分析后产生的幅频特性及滤波器系数表输出的滤波器系数为:.word 15, -3, -158, -448, -583, -172, 663, 1008, 2 .word -1764, -2046, 1075, 6744, 11298, 11298, 6744, 1075, -2046 .word -1764, 2, 1008, 663, -172, -583, -448, -158, -3 .word 15四、详细设计 给定 FIR数字低通滤波器的技术指标为分别为 50Hz和 350Hz,采样频率均为1kHz。利用 Matlab设计 FIR低通滤波器的系数得 DSP中滤波器系数列表.用.word汇编命令将各滤波器系数直接输入到 DSP程序中;模拟输入数据由 C语言程序实现 ,然后用 .copy命令将 C语言程序生成的数据文件拷贝到 DSP程序中。DSP程序实现读入数据、滤波、显示波形等方面的任务。完成 FIR滤波器的程序框图如图 4所示 ,可知 F I R滤波器的 DSP实现主要由以下 4方面的内容组成:(1)模拟输入数据的生成 用 C语言程序生成输入数据 ,通过.copy汇编命令将生成的数据文件拷贝到汇编程序中 ,作为 FIR滤波器的输入数据。(2)DSP初始化程序 .title "FIR.asm" .mmregs .def _c_int00N .set 28 size .set N/2 ;FIR滤波器阶数x_new .usect"x_new",N/2 ;自定义数据空间x_old .usect"x_old",N/2 ;自定义数据空间KS .set 256 ;输入样本数据个数input .usect"input",KS output .usect"output",KS .data .copy "fdacoefs4.h" ;FIR滤波器系数 .text保存滤波结果到输出单元滤波处理待滤波的的样本点数(256点)是否完成?结束读入数据并存放到栈顶初始化DSP输入数据开始否是图4 主程序流程图 (3)滤波算法子程序:设置指针指向新老缓冲区设置循环缓冲区长度,输入数据滤波系数与指针指向单元内容相乘保存输出结果并修正寄存器指针输入数据循环 滤波算法流程图滤波算法子程序代码:SSBXFRCT STM #x_new,AR2 STM #x_old+(size-1),AR3 STM #-1,AR0 STM #output,AR5 STM #input,AR4 STM #KS-1,BRC RPTBD LOOP-1 STM #size,bk LD *AR4+,A STL A,*AR2FIR: ADD *AR2+0%, *AR3+0%,A RPTZ B,#size-1 FIRS *AR2+0%,*AR3+0%,COEF STHB,*AR5+ MAR *+AR2(2)% MAR *AR3+% MVDD *AR2,*AR3+0%(4)复位程序: 接受中断请求,响应中断保护现场执行中断程序恢复现场中断返回 中断流程图复位程序代码: .title "FIR_V.asm" .ref _c_int00 .sect"VECTORS" reset: b _c_int00 .end五、调试过程 编辑好.asm和.cmd文件之后并加入工程中进行编译,修改出现的错误直至无误,然后加载.out文件。选择File菜单下的data,加入.dat文件,运行程序并打开CCS的输入输出图形界面,观察对比滤波前后的时域波形与频谱图。调试过程中出现的错误及警告:(1)warning: creating output section newdata without SECTIONS specification 分析: 汇编语言源程序中的未初始化段名newdata与链接命令文件不一致 解决:将链接命令文件中相应的未初始化段名改为newdata(2) "fir.asm", ERROR! at line 13: E1000 Include/Copy file not found or opened 分析:用FDATOOL工具产生的系数表文件名与源程序中引用的不一致解决:保持产生的系数表文件名与源程序中引用的一致(3)分析产生的波形图不理想,有时是因为不同的参数设计出的滤波器的阶数可能不同,要注意修改源程序中滤波器阶数值(4)在CCS程序中,应先加载正确的中断向量文件,所用芯片的CMD配置文件,编译才会有效。编译成功后加载.out文件后才可以运行,查看运行结果。若发现程序语法本身正确,编译也没有错误,可以加载.out文件,但查看输出波形始终与Matlab的波形无法吻合,则应考虑重置CPU再重新进行操作。调试后运行出的波形如下:输入与输出的时域波形:输入与输出的频谱图:滤波后信号的时域图和频谱图分别如上图所示. 对比CCS所显示的滤波前和滤波后信号的时域和频谱图可以看出:由频率分别为 50Hz, 350Hz 这2个正弦信号组成的混合信号 ,经过FIR低通滤波后,相对应频率的信号被保留 ,另外1个信号得到压制 ,基本上达到了预期的滤波效果。改变程序中的滤波器系数 ,即可实现不同类型的滤波器。六、结论与体会6.1 设计结论本设计为FIR低通滤波器,其要求实现功能是在多个混合的频率中可以把其中高于截止频率Fc的频率分量滤除掉,通过matlab中的FDATOOL工具可以很方便地进行设计,输入相应的参数输入是采样频率Fs=1000Hz,通带频率为150Hz,阻带频率250Hz,输出滤波器系数表,它们作为CCS仿真时的输入,调试修改程序,从所得到的图形中观察分析可以得知该滤波器实现了滤波效果,达到了预期的目的。6.2 实验心得通过这次基于DSP的数字滤波器设计与仿真,我学会了应用Matlab和CCS进行DSP设计的实践操作。应用Matlab对FIR数字滤波器比传统的方法设计滤波器速度提高了很多,设计过程得到了很大的简化。熟悉了DSP集成开发环境(CCS)基于窗函数法设计,掌握了FIR数字滤波器原理和方法。通过对系统的调试,对线性相位FIR数字滤波器特性及不同阶数对滤波器特性的影响进行了研究。通过观察时域和频域图,对FIR数字滤波器特性进行了验证,在应用DSP对数字滤波器实现的过程中,体会到了DSP在数字滤波实现中的优缺点。在使用Matlab时,熟悉了如何运用Matlab进行滤波器的设计,可以是编写程序直接针对某所需参数的滤波器进行,也可以运用Matlab中的一个滤波器的专用设计工具FDATOOL对其进行设计,简单方便。在数字滤波器设计时要注意以下几点:(1)在用Matlab设计滤波器时采样频率一定要满足奈奎斯特准则。 抽样频率必须大于两倍信号谱的最高频率,即Fs >=2Fh来设置混合波的相应频率,以取得准确的滤波效果。(2)使用探针方法输入数据时,一般要求输入数据是16进制的小数表示,但如果输入10进制的也可以,但需在两次确认之后才可以输入。 (3)在图形窗口观察结果时,如果所观察的图形不明显,可以通过设置幅度值来改善效果。 (4)在程序中对输入的数据处理时,因注意在Matlab得到的小数要在CCS中得以应用必须符合小数运算的规则。当发生溢出时,则用其最大正数或者最大负数加载累加器。总之,滤波器设计是我们实际系统应用中重要的一方面,相比传统的R,L,C元件和运算放大器组成的块滤波器,更有发展的潜力。相信这次课程设计,对于我以后的学习和工作会带来很大的帮助!七、参考文献1程佩青.数字信号处理教程.北京:清华大学出版社,19952戴明帧.TMS320C54x DSP 结构原理以应用.北京.北京航空航天大学出版社,20073DSP原理及应用.北京.中国水利水电出版社,2004附录一:源程序清单(.asm文件) *系数对称的FIR滤波器设计* .title "FIR.asm" .mmregs .def _c_int00N .set 28 size .set N/2 ;FIR滤波器阶数x_new .usect"x_new",N/2 ;自定义数据空间x_old .usect"x_old",N/2 ;自定义数据空间KS .set 256 ;输入样本数据个数input .usect"input",KS output .usect"output",KS .data .copy "fdacoefs4.h" ;FIR滤波器系数 .text_c_int00: SSBXFRCT ;设置FRCT(小数方式)位 STM #x_new,AR2 ;AR2指向New缓冲区第一个单元 STM #x_old+(size-1),AR3 ;AR3指向Old缓冲区最后一个单元 STM #-1,AR0 ;AR0=-1,双操作数减量 STM #output,AR5 STM #input,AR4STM #KS-1,BRC ;块重复计数GS次RPTBD LOOP-1STM #size,bk ;循环缓冲区块大小BK=sizeLD *AR4+,ASTL A,*AR2 ;输入样本值FIR: ADD *AR2+0%, *AR3+0%,A ;AH=x(n)+x(n-N+1) RPTZ B,#size-1 ;B=0,下条指令执行size次 FIRS *AR2+0%,*AR3+0%,COEF ;B=B+AH*h(0),AH=x(n-1)+x(n-N+2) ;执行该指令size次 STHB,*AR5+ ;保存滤波输出数据到AR5所指向单元 MAR *+AR2(2)% ;修正AR2,指向New缓冲区最老的数据 MAR *AR3+% ;修正AR3,指向Old缓冲区最老的数据 MVDD *AR2,*AR3+0% ;用New缓冲区最老的数据替代Old缓冲区中最;老的数据LOOP:EEND B EEND ;循环等待 .end* 复位向量文件* .title "FIR_V.asm" .ref _c_int00 .sect "VECTORS" ;定义向量表,紧随其后的是名为VECTORS的复位向量reset: b _c_int00 .end附录二:链接命令文件(.cmd文件)MEMORYPAGE 0:ROM:org=0x0E00,len=0x1000VEC:org=0xff80,len=0x0080PAGE 1:SPRAM:org=0x0060,len=0x0020DARAM:org=0x0080,len=0x2000SECTIONS.text :>ROMPAGE 0.data :>ROMPAGE 0VECTORS :>VECPAGE 0.bss :>SPRAM PAGE 1x_new :> DARAM PAGE 1 x_old :> DARAM PAGE 1output :>DARAM PAGE 1input :>DARAM PAGE 1附录三:滤波器系数表(.h文件) COEF .word 15, -3, -158, -448, -583, -172, 663, 1008, 2 .word -1764, -2046,1075, 6744, 11298, 11298, 6744, 1075, -2046 .word -1764, 2, 1008, 663, -172, -583, -448, -158, -3 .word 15附录四:Matlab程序(.m文件)f11=50; %/Hzf12=350; %/Hzfs=1000; %/采样HzN=256 ; %数据个数T=1/fs; %采样周期n=0:N;x11=sin(2*pi*f11*n*T);x12=0.7*sin(2*pi*f12*n*T);x_base=(x11+x12);%待滤波信号波形figure(1)plot(x_base)%待滤波信号频谱figure(2)yff=abs(fft(x_base)df=n*(fs/N)plot(df,yff)xout=x_base/max(x_base);%归一化xto_ccs=round(32767*xout)fid=fopen('input.dat','w');%打开文件fprintf(fid,'1651 1 0 0 0n');%输出文件头fprintf(fid,'%dn',xto_ccs);%输出fclose(fid);-

    注意事项

    本文(最新DSP课程设计报告—刘雅琪.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开