DSP课程设计正弦波信号发生器报告.docx
《DSP课程设计正弦波信号发生器报告.docx》由会员分享,可在线阅读,更多相关《DSP课程设计正弦波信号发生器报告.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(BRC) =179,重复执行180次STM#sin_x, AR7;AR7指向sinx首地址RPTBloop3-l;LD*AR7+, A;(AR7) -A,然后AR7加 1NEGA;累加器变负STLA,*AR6+;A 低 16 位 f AR6Ioop3:STM#sin_x, AR6;generate sin wave AR6指向sin xSTM#1, ARO;ARG 01STM#360,BK;BKG360loop4:PORTW*AR6+0%, PAO ;PAO=*AR6+0%,向PAO输出数据Bloop4;sinx:,defd_xs, d_sinx;定义标号d_xs, d sinx.data定
2、义数据代码段table_s.word01c7h;cl=l/(8*9).word030bh;cl=l/(6*7). word0666h;cl=l/(4*5).word1556h;cl = 1/(2*3)d_coef_s.usectcoef_s, 4;为 coef_s 保留4个存储空间d_xs.usect rsin_vars , 1;为d_xs中sin_vars保留1个存储空间d_squr_xs, usectsin_vars ,I;为d_squr_xs 中 s in_vars保留 1 个存储空间d_temp_s.usectsin_vars , 1;为d_temp_s中sin_vars保留1个存储空
3、间d_sinx.usect rsin_vars , 1;为d_sinx中sin_vars保留1个存储空间c_l_s, usect1sm vars , i;为d_xs中sin vars保留1个存储空间.text;定义代码开始段SSBXFRCT;设置FRCTE以解决冗余符号位STM#d_coef_s, AR5;AR5指向d_coef_s首地址RPT#3;重复下条,旨令4次MVPD#table_s, *AR5+;table_s中的数复制到AR5指向的单元STM#d_coef_s, AR3;AR3指向d_coef_s首地址STM#d_xs, AR2;AR2指向d_xs首地址STM#c_l_s, AR4
4、;AR4指向c_s首地址ST#7FFFh, c_l_s;7FFFh fc l_sSQUR*AR2+, A:AR2指向累加器A中的数值求其平方STA, *AR2;(A)左移 16位一AR2LD*AR4, B;(AR4)左移 16位一BMASR*AR2+, *AR3+, B, A;从累加器A中减去(AR2) * (AR3)MPYAA;操作数与累加器A中高位相乘STHA, *AR2;(A)高 16位一AR2MASR*AR2-, *AR3+, B, A;从累加器A中减去(AR2) * (AR3)MPYA*AR2+;AR2指向的数与累力口器A的高16位相乘STB, *AR2;(B)左移 16位一AR21
5、 |LD*AR4, B;(AR4)左移 16位一BMASR*AR2-, *AR3+, B, A;从累加器A中减去(AR2) * (AR3)MPYA*AR2+;与累加器A中高16位相乘STB, *AR2;(B)左移 16位f AR21 |LD*AR4, B;(AR4)左移 16位一BMASR*AR2-, *AR3+, B, A;从累加器A中减去(AR2) * (AR3)MPYAd_xs;d_xs指向的操作数与累加器A中高16位相乘STHB, d sinx;(B)高 16位f d sinxRET;返回cosx:.defd_xc, d_cosx; 定义标号d_xc, d_cosxd_coef_c .
6、 usectcoef_c,4;为coef_c庶留4个存储空间 data;定义数据代码段table_c . word0249h;cl=l/(7*8), word0444h;c2=l/ (6*5).wordOaabh;c3=l/(3*4) word4000h;c4=l/2d xc.usectcos_vars , 1;为d_xc中cos_vars保存1个存储单元d_squr_xc .usectcos_vars , i;为d_squr_xc 中cos_vars保存 1 个存储单元一d_temp_c .usectcos_vars,1;为(113叫_(3中(30$_丫1$保存1个存储单元d cosx .u
7、sectcos_vars , 1;为d cosx中cos_vars保存1个存储单元c_l_c.usectcos_vars,1;为c_l_c中cos_vars保存1个存储单元.text;定义文本代码段SSBXFRCT;FRCT=1以清除冗余符号位STM#d_coef_c, AR5;AR5指向d_coef_c首地址RPT#3;重复下条指令4次MVPD#table_c, *AR5+;把table_c中的数复制到中AR5STM#d_coef_c, AR3;AR3指向d_coef_c首地址STM#d_xc,AR2;AR2指向d_xc首地址STM#c_l_c, AR4;AR4指向c_l_c首地址ST#7F
8、FFh, c_l_c;7FFFhf c_l_cSQUR*AR2+, A;求X的平方存放在累加器A中STA, *AR2;(A)左移 16位一AR2|LD*AR4, B;(AR4)左移 16位一BMASR*AR2+, *AR3+, B, A;A=l-x2/56, T=x2MPYAA;A=T*A=x-2(l-x-2/56)STHA, *AR2;(d_temp)= x 2(l-x2/56)MASR*AR2-, *AR3+, B, A;A=1-x2/30(l-x-2/56),T= x2(l-x2/56)MPYA*AR2+;B=x2(l-x2/30(l-x2/56)STB, *AR2;(d_temp)=x
9、2 (12/30 (12/56)1 |LD*AR4, B;B=1MASR*AR2-, *AR3+, B, A;A= 12/12(12/30 (12/56)SFTAA,-1,A;T/2NEGA9MPYA*AR2+;B=l-x2/2(l-x2/12(l-x2/30;(1-x-2/56)MAR*AR2+9RETD.ADD*AR4, 16, B;B=l2/2d2/12(12/30;(12/56)STHB, *AR2;cos (theta)RET,end.92. *.cmd文件描述输入文件和输出文件,说明系统中有哪些可用存储器、程序段、堆栈及复位向量和中断向量等安排在什么地方。其中MEMORY段就是用来
10、规 定目标存储器的模型,通过这条指令,可以定义系统中所包含的各种形式的存储 器,以及它们占据的地址范围;SECTIONS段说明如何将输入段组合成输出段以 及在可执行文件中定义输出段、规定输出段在存储器中的位置等。正弦波程序链 接命令文件sin. cmd:MEMORYPAGE0:PAGEEPROM:VECS:org = OEOOOh, org = 0FF80h,len = lOOOh len = 0080hSPRAM:org = 0060h,len = 0020hDARAM1:org = 0080h,len = OOlOhDARAM2:org = 0090h,len = OOlOhDARAM3:
11、org = 0200h,len = 0200h1:.text:EPROMPAGE.data:EPROMPAGESTACK:SPRAMPAGEsin vars:DARAM1PAGE0011SECTIONS文本代码段其实地址为OEOOOh,长度为1000h;数据代码段其实地址为ODOOOh;堆栈起始地址为0060h,长度为0020h;标号为sin_vars段的起始地址为0080;长度为0010hcoef_scos_varscoef c:DARAM1:DARAM2:DARAM2PAGE 1 ;标号为coef_s段的起始地址为0070h;长度为OOlOhPAGE 1 ;标号为cos_vars段的起始地
12、址为0090h;长度为OOlOhPAGE 1 ;标号为coef_c段的起始地址为0080h;长度为0020hsin_x : align(512) DARAM3 PAGE 1.vectors :VECS PAGE 03.复位向量文件sin_v. asm: title.ref, sect . sin_v. asm_c_int00 / , vectorsB_c_int00.end设计仿真结果及分析/C54x Siaolator (T ex as Instruents)/CPV - C54X (Simulator) - Code Composer Studio - GraphicalO File Ed
13、it View Project Debug GEL Option Profile Tools DSP/BIOS Window Help.厕 X|百百尉电亳|T|解 蜀喻筑快编I昌用 至够I靛ri理| shiyan. pj t |Debug* Files王 口 GEL files 日ProjectsB .弟)shiyan. pj t (DebiI Dependent Proje LJ Documents 口 DSP/BIOS Config !_) Generated Files1 IncludeI Libraries日Source 囱 sin. asm 国 s i n_v. asm5“图 sin
14、. cmdDJ3 J HALTEDZ)手囱骷后| 曲玛在CCS集成环境中实现正弦波能够起到防止干扰的作用,同时也大大地减小 了波形的线性失真。同时我们也能从中看出CCS能够精确地对各个角度进行计算 得出相应的正弦值,幅度和频率易于调节,波形也较为稳定,抗干扰能力较强。 最重要的是这种设计方案简单可行,新颖实用,具有很高的实践和推广价值。 分析:通过不断的发现错误、改正错误和调试,最终得到了所希望的图象,即正弦 波信号。设计总结在本次课程设计过程中我遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了实训进程。并在过程中进一步提高自身的创作、创新水平, 扎实基础,扩展所学。课设过程中
15、经常遇到问题,通过自己在网上查找资料和在老师的帮助下,一 步一步地解决了问题,最终解决了问题得到了结果,使我独立解决问题的能力得 到了很大的提高。并且此次课程设计,基于课程理论知识和网上资料,使我对数 字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号 处理方法有了进一步的了解。在理论课的基础上进行实验实习,是对本门课程的 深入学习和掌握,在以后的工作学习中,数字信号的处理都是采用计算机仿真的 方很大的帮助。虽然DSP原理及应用这门课程的课时很短,但是通过本次课 程设计使我对这门课程有了更深的了解,同时也学会了 C54x DSP芯片的一些简 单的编程和应用。作为通信工程专业
16、的学生,我相信这样一个课程设计对我们的 发展有着极大的帮助!设计题目正弦波信号发生器设计目的学会使用CCS (Code Composer Studio)集成开发环境软件,在此集成开发环 境下完成工程项目创建,程序编写,编译,链接,调试以及数据的分析。同时完 成一个正弦波信号发生器的程序的编写,并在集成开发环境下进行模拟运行,观 察结果。设计内容编写一个产生正弦波信号的程序,在CCS软件下进行模拟运行,观察输出 结果。设计原理正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信 号处理系统中。通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开 法。查表法是通过查表的方式来实现
17、正弦波,主要用于对精度要求不很高的场合。 泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出 一个角度的正弦和余弦值,且只需要较小的存储空间。本次课程设计只要使用泰 勒级数展开法来实现正弦波信号。1 .产生正弦波的算法在高等数学中,正弦函数和余弦函数可以展开成泰勒级数,其表达式为sin(x) = x-3!5!79XX17!9!cos(x) = 1一X2X412!4!68X X 16!8!若要计算一个角度x的正弦和余弦值,可取泰勒级数的前5项进行近似计算。sin(x)=%一3!5!7!9!79+=x 1-231-工 14x5 X21- 6x7x2X4X6X8COS(X)= 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 正弦波 信号发生器 报告
限制150内