ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:341.80KB ,
资源ID:29604930      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29604930.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP课程设计报告刘雅琪.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP课程设计报告刘雅琪.docx

1、DSP课程设计报告刘雅琪一、 课程设计的目的和要求1.1课程设计目的:本课程是DSP技术类课程配套的课程设计,要求学生通过高级语言或汇编 语言编程实现较复杂的功能。通过课程设计,使学生加深对 DSP芯片TMS320C54的结构、工作原理的理解,获得 DSP应用技术的实际训练,掌握设 计较复杂DSP系统的基本方法。1.2课程设计要求1、认真查阅资料2、 课程设计前认真预习3、 遵守课程设计时间安排4、 认真保质保量完成设计要求5、 认真书写报告二、系统功能介绍及总体设计方案21 功能介绍随着信息技术和计算机技术的飞速发展 , 数字信号处理技术在众多领域得 到广泛应用。数字滤波器由于其精度高、 稳

2、定性好、 使用灵活等优点 , 广泛应 用在各种数字信号处理领域。数字滤波器根据冲击响应函数的时域特性 , 可以分 为FIR(有限长冲激响应滤波器)和IIR(无限长冲激响应滤波器)。FIR滤波器 与 IIR 滤波器相比 ,具有严格的线性相位 ,幅度特性可任意等优点。而且 , FIR 滤波器的单位抽样响应是有限长的 , 故一定是稳定的 , 他又可以用快速傅里叶变 换(FFT)算法来实现过滤信号,可大大提高运算效率。本课程设计的是一个等波纹 FIR 低通滤波器,其具体参数为:采样频率Fs=1000Hz,通带频率 Fpass=150Hz截止频率 Fsg=250Hz,通带衰减 Apass =0.5dB阻

3、带衰减 Astop=80dB。22 总体设计方案:先进行 Matlab 程序设计产生待滤波数据(借助设计工具 FDATOOL 产生设计 系数),将其导入CCS在CCS!进行仿真调试运行,得到了输入和输出的波形及其频谱。三、主要设计内容和步骤31 FIR数字滤波器的原理分析3.1.1FIR数字滤波器数字滤波器原理一般具有如下差分方程N A N -1y(n) f akX( n- k) 、bky( n-k)kz0 k=0式中x(n)为输入序列,y(n)为输出序列,兔和bk为滤波器系数,N是滤波器阶N J数。当所有的bk均为零,则有 y(n)八 时(n-k) k=0(2)式是FIR滤波器的差分方程,其

4、一般形式为N -1y(n)hkx( n-k) (3)k 对(3)式进行z变换,整理后可得FIR滤波器的传递函数FIR的直接型结构:x(n)Bh(0)n(2) b1 h(N 3)_mh(N 2) I 1 ”1h(Nl)ziziy(n)图2 FIR的直接型结构FIR滤波器最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位冲激响应h(n)是一个有限长序列。如果h(n)是实数,且满足偶对称或奇对称的条件,即h(n)二h(N -n)或h(n)二-h(N -仁n),则滤波器具有线性相位特性。偶对称线性相位FIR滤波器(N为偶数)的差分方程表达式为:N/2 Jy - qx(n i) x(n - N

5、 Vi)i Q线性相位FIR滤波器是用得最多的FIR滤波器。FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此fir滤波算法实际上是一种乘法累加运算。在数字滤波器中,FIR滤波器的最主要特点是没有反馈回路,故不存在不稳定的问题。同时可以 在随意设置幅度特性的同时,保证精确无误的线性相位。稳定的线性相位特性 是FIR滤波器的突出优点。3.1.2系数对称的FIR滤波器对于系数对称的FIR滤波器,由于其具有线性相位特性,因此应用很广,特别是对相位失真要求很高的场合,如调制解调器(MODEM一个N=8的FIR滤波器,若a(n)=a(N“-n),就是对称FIR滤波

6、器,其输出方程为:y(n) = aox(n) aix(n -1) a2x(n - 2) a3x(n - 3) a3X(n - 4) a2x(n - 5) x(n - 6) ax(n - 6)总共有8次乘法和7次加法。如果改写成:y(n) = ax(n) x(n - 7) a1 x(n -1) x(n - 6) a2x(n -2) x(n - 5) a3x(n - 3) x(n - 4)则变成4次乘法和7次加法。可见乘法运算的次数减少了一半。这是对称 FIR的有一个优点。对称FIR滤波器的C54x实现的要点(1)在数据存储区中开辟两个循环缓冲区,New循环缓冲区中存放N/2=4个新数据;Old循

7、环缓冲区中存放老数据。循环缓冲区的长度为 N/2。数据存储器NeW循环缓冲区 Old循环缓冲区80hx(n)JAR288hx( n-4)81hx(n-3)89hx(n-5)82hx(n-2)8Ahx(n-6)83hx(n-1)8Bhx( n-7)AR3程序存储器系数表低地址咼地址(2)设置循环缓冲区指针,AR2指向中最新的数据,AR3指向中最老的数据(3)在程序存储器中设置系数表。(4)(AR2) (AR3) AH (累加器 A 的高位)(AR2) -1 AR2 (AR3) -1AR3 将累加器B清0,重复执行4次(i=0,1,2,)(AH)*系数ai +(B)t B 系数指针(PAR加1(A

8、R2) (AR3) AH 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当(RC) = 0(B)+(A(32-16)*( 由 PAR#址 Pmem)B(Xmem +(Ymer

9、) PAR(RC)-1 RCFIRS指令在同一个机器周期内,通过 C和D总线读2次数据存储器,同 时通过P总线读一个系数。3.2Matlab的仿真及滤波器系数的确定设计FIR滤波器,关键是得到正确的滤波器系数。按照技术指标的要求,进行Matlab程序设计。运行后生成的图像如下:观察图像可知在频率为50和350Hz上有波形,后面为镜像显示。利用Matlab中FDATOO工具设计好滤波器,从 FDATOO向CCS输出滤波器 系数。Matlab中FDATOOLX具设计好滤波器以后,可以利用 C语言头文件输出 滤波器系数,将头文件添加到工程中, 编译连接生成可执行文件。 在把可执行文件加载到目标DSP

10、后,会给头文件中的滤波器系数分配一个静态存储空间, 滤波器系数就放入此存储空间中。或者可以直接把滤波器系数输出到 DSP的存储器中。FDATOO设计分析后产生的幅频特性及滤波器系数表输出的滤波器系数为:.word15,-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.word15四、详细设计给定FIR数字低通滤波器的技术指标为分别为 50Hz和35

11、0Hz采样频率均为1kHz。利用Matlab设计FIR低通滤波器的系数得DSP中滤波器系数列 表.用.word汇编命令将各滤波器系数直接输入到 DSP程序中;模拟输入数据由C语言程序实现,然后用.copy命令将C语言程序生成的数据文件拷贝到 DSP 程序中。DSP程序实现读入数据、滤波、显示波形等方面的任务。完成 FIR滤波器的程序框图如图 4所示,可知FI R滤波器的DSP实现主要由以下4方 面的内容组成:(1)模拟输入数据的生成 用C语言程序生成输入数据,通过.copy汇编命令将生成的数据文件拷贝到汇编程序中 ,作为FIR滤波器的输入数据。(2) DSP初始化程序.title FIR.as

12、m .mmregs.def_c_int00N.set28size.setN/2;FIR 滤波器阶数x_new.usectx_new,N/2; 自定义数据空间x_old.usectx_old,N/2; 自定义数据空间KS.set256; 输入样本数据个数input.usectinput,KSoutput.usectoutput,KS.data.copyfdacoefs4.h;FIR 滤波器系数.text图4主程序流程图(3)滤波算法子程序:滤波算法流程图 滤波算法子程序代码:FIR:SSBX FRCTSTM#x_new,AR2STM#x_old+(size-1),AR3STM#-1,AR0STM

13、#output,AR5STM#in put,AR4STM#KS-1,BRCRPTBD LOOP-1STM#size,bkLD*AR4+,ASTLA,*AR2ADD*AR2+0%,*AR3+0%,ARPTZB,#size-1FIRS*AR2+0%,*AR3+0%,COEFSTHB,*AR5+MAR*+AR2 (2) %MAR*AR3+%MVDD *AR2,*AR3+0%(4)复位程序:中断流程图 复位程序代码:.title FIR_V.asm.ref _c_in tOO.sect VECTORSreset:b _c_int00.end五、调试过程编辑好.asm和.cmd文件之后并加入工程中进行编

14、译,修改出现的错误直至无误,然后加载.out文件。选择File菜单下的data,加入.dat文件,运行程序并打开CCS的输入输出图形界面,观察对比滤波前后的时域波形与频谱图 调试过程中出现的错误及警告:(1) warning:creati ng output sect ion n ewdata without SECTIONSspecificati on分析: 汇编语言源程序中的未初始化段名n ewdata与链接命令文件不一致解决:将链接命令文件中相应的未初始化段名改为 n ewdata(2) fir .asm, ERROR! at line 13: E1000 Include/Copy fi

15、le not foundor opened分析:用FDATOO工具产生的系数表文件名与源程序中引用的不一致解决:保持产生的系数表文件名与源程序中引用的一致(3)分析产生的波形图不理想,有时是因为不同的参数设计出的滤波器的 阶数可能不同,要注意修改源程序中滤波器阶数值(4)在CCS程序中,应先加载正确的中断向量文件,所用芯片的 CMD配置 文件,编译才会有效。编译成功后加载.out文件后才可以运行,查看运行结果。 若发现程序语法本身正确,编译也没有错误,可以加载 .out文件,但查看输出波 形始终与Matlab的波形无法吻合,则应考虑重置CPU再重新进行操作。调试后运行出的波形如下:输入与输出的

16、时域波形:N3 ztosd T tiH :hiiH |诫 氓idfft# Scdt输入与输出的频谱图:滤波后信号的时域空频谱图分别如上图所示.对比CCS所显示的滤波前 和滤波后信号的时域和频谱图可以看出:由频率分别为50Hz, 350Hz这2个正 弦信号组成的混合信号 ,经过FIR低通滤波后,相对应频率的信号被保留 ,另外1个信号得到压制,基本上达到了预期的滤波效果。改变程序中的滤波器 系数,即可实现不同类型的滤波器。六、结论与体会6.1设计结论本设计为FIR低通滤波器,其要求实现功能是在多个混合的频率中可以把其 中高于截止频率Fc的频率分量滤除掉,通过 matlab中的FDATOO工具可以很

17、方便 地进行设计,输入相应的参数输入是采样频率 Fs=1000Hz,通带频率为150Hz,阻 带频率250Hz,输出滤波器系数表,它们作为CCS仿真时的输入,调试修改程序, 从所得到的图形中观察分析可以得知该滤波器实现了滤波效果,达到了预期的 目的。6.2实验心得通过这次基于DSP的数字滤波器设计与仿真,我学会了应用 Matlab和CCS进 行DSP设计的实践操作。应用Matlab对FIR数字滤波器比传统的方法设计滤波器 速度提高了很多,设计过程得到了很大的简化。熟悉了 DSP集成开发环境(CCS)基于窗函数法设计,掌握了 FIR数字滤波器原理和方法。通过对系统的 调试,对线性相位 FIR 数

18、字滤波器特性及不同阶数对滤波器特性的影响进行了研 究。通过观察时域和频域图,对 FIR数字滤波器特性进行了验证,在应用DSP对 数字滤波器实现的过程中,体会到了 DSP在数字滤波实现中的优缺点。在使用 Matlab时,熟悉了如何运用Matlab进行滤波器的设计,可以是编写程序直接针 对某所需参数的滤波器进行,也可以运用 Matlab中的一个滤波器的专用设计工 具 FDATOOL 对其进行设计,简单方便。在数字滤波器设计时要注意以下几点:( 1)在用 Matlab 设计滤波器时采样频率一定要满足奈奎斯特准则。 抽样 频率必须大于两倍信号谱的最高频率,即 Fs =2Fh来设置混合波的相应频率, 以

19、取得准确的滤波效果。( 2)使用探针方法输入数据时 , 一般要求输入数据是 16进制的小数表示 , 但 如果输入 10进制的也可以 , 但需在两次确认之后才可以输入。(3) 在图形窗口观察结果时 ,如果所观察的图形不明显 ,可以通过设置幅度 值来改善效果。(4) 在程序中对输入的数据处理时,因注意在 Matlab得到的小数要在CCS 中得以应用必须符合小数运算的规则。当发生溢出时,则用其最大正数或者最 大负数加载累加器。总之, 滤波器设计是我们实际系统应用中重要的一方面 , 相比传统的 R,L,C 元 件和运算放大器组成的块滤波器 , 更有发展的潜力。相信这次课程设计,对于我 以后的学习和工作

20、会带来很大的帮助!七、参考文献1程佩青. 数字信号处理教程 .北京:清华大学出版社, 19952戴明帧.TMS320C54XDSP结构原理以应用.北京.北京航空航天大学出版社,20073DSP 原理及应用 . 北京. 中国水利水电出版社, 2004附录一:源程序清单(.asm文件).title.mmregs.defFIR.asm_c_int00N.set28size.setN/2;FIR 滤波器阶数x_new.usectx_new,N/2; 自定义数据空间x_old.usectx_old,N/2; 自定义数据空间KS.set256; 输入样本数据个数input.usectinput,KSout

21、put.usectoutput,KS.data.copyfdacoefs4.h;FIR 滤波器系数*系数对称的 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,AR5STM#input,AR4STM#KS-1,BRC;块重复计数GS次RPTBDLOOP-1STM#size,bk; 循环缓冲区块大小 BK=sizeLD*AR4+,ASTLA,

22、*AR2; 输入样本值FIR:ADD*AR2+0%, *AR3+0%,A;AH=x(n)+x(n-N+1)RPTZB,#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 次STH B,*AR5+MAR *+AR2(2)%;保存滤波输出数据到AR5所指向单元; 老的数据.end;修正AR2指向New缓冲区最老的数.title FIR_V.asm.ref _c_int00.sect VECTORS定义向量表,紧随其后的是名为 VECTOR的复位向量 reset

23、:b _c_int00.end附录二:链接命令文件(.cmd文件)MEMORYPAGE0:ROM: org=0x0E00,len=0x1000VEC: org=0xff80, len=0x0080PAGE1:SPRAM:org=0x0060, len=0x0020DARAM:org=0x0080, len=0x2000SECTIONS.text ROMPAGE0.data ROMPAGE0VECTORS VECPAGE0.bss SPRAMPAGE1x_new DARAMPAGE1x_old : DARAMPAGE1output : DARAMPAGE1 input : DARAMPAGE1

24、附录三:滤波器系数表( .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*p

25、i*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);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1