dsp课设.docx
- 文档编号:6805789
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:11
- 大小:161.48KB
dsp课设.docx
《dsp课设.docx》由会员分享,可在线阅读,更多相关《dsp课设.docx(11页珍藏版)》请在冰豆网上搜索。
dsp课设
基于DSP的正弦信号发生器设计
(课程设计)
一,设计题目
正弦信号发生器设计
二,设计研究目的
1.学会用DSP器件实现正弦信号发生器的设计。
2.通过对课程设计任务的完成,加深对课程教学理论内容的理解。
3.掌握熟悉DSP的开发流程和基本的编程方法。
4.在设计中由于涉及到各种器件的使用,提高综合运用各种技术和知识的能力。
三,设计内容
1.书写源程序,连接命令文件。
2.上机调试修改仿真。
3.书写实验报告。
四,设计任务和要求
设计一个基于DSP的正弦信号发生器,要求:
总体方案设计
设计编程方法,写出源代码
仿真与结果分析
设计报告格式要正确,结构符合逻辑,表达得体。
五,设计原理
DSP简介
数字信号处理器(DSPDigitalSignalProcessor)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。
DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。
数字信号发生器是在电子电路设计、自动控制系统和仪表测量校正调试中应用很多的一种信号发生装置和信号源。
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
DSP集成开发环境CCS简介
CCS是TI公司针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。
CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程。
CCS的开发系统主要由以下组件构成:
1.TMS320C54x集成代码产生工具
用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。
主要包括汇编器、链接器、C/C++编译器和建库工具等。
2.CCS集成开发环境
集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。
包括编辑工具、工程管理工具和调试工具等。
3.DSP/BIOS实时内核插件及其应用程序接口API
主要为实时信号处理应用而设计。
包括DSP/BIOS的配置工具、实时分析工具等。
4.实时数据交换的RTDX插件和相应的程序接口API
可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。
正弦波信号发生器原理
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
1查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
2泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法
正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前5项,得近似计算式:
递推公式:
sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x]
cos(nx)=2cos(x)sin[(n-1)x]-cos[(n-2)x]
由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成。
主程序流程图
程序中,N值为产生正弦信号一个周期的点数,产生的正弦信号频率与N数值大小及D/A转换频率fDA有关,产生正弦波信号频率f的计算公式为:
f=fDA/N
六,总体方案设计
1.基于DSP的特点,本设计采用TMS320C5401系列的DSP作为正弦信号发生器的核心控制芯片。
2.用泰勒级数展开法实现正弦波信号。
3.设置波形时域观察窗口,得到其滤波前后波形变化图。
七,源程序
源文件:
.mmregs
.defstart
.defd_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x:
.usect"sin_x",360
STACK:
.usect"STACK",10H
k_theta.set286;theta=pi/360(0.5deg)
start:
.text
STM#STACK+10H,SP
STMk_theta,AR0
STM0,AR1
STM#sin_x,AR6
STM#90,BRC
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP
STLA,@d_xs
STLA,@d_xc
CALLsinx;d_sinx=sin(x)
CALLcosx;d_cosx=cos(x)
LD#d_sinx,DP
LD@d_sinx,16,A;A=sin(x)
MPYA@d_cosx;B=sin(x)*cos(x)
STHB,1,*AR6+;AR6----2*sin(x)
MAR*AR1+0
loop1:
STM#sin_x+89,AR7;sin91(deg.)-sin179(deg.)
STM#88,BRC
RPTBloop2-1
LD*AR7-,A
STLA,*AR6+
loop2:
STM#179,BRC;sin180(deg.)-sin359(deg.)
STM#sin_x,AR7
RPTBloop3-1
LD*AR7+,A
NEGA
STLA,*AR6+
loop3:
STM#sin_x,AR6;generatesinwave
STM#1,AR0
STM#360,BK
Bloop3
sinx:
.defd_xs,d_sinx
.data
table_s.word01C7H;C1=1/(8*9)
.word030BH;C2=1/(6*7)
.word0666H;C3=1/(4*5)
.word1556H;C4=1/(2*3)
d_coef_s.usect"coef_s",4
d_xs.usect"sin_vars",1
d_squr_xs.usect"sin_vars",1
d_temp_s.usect"sin_vars",1
d_sinx.usect"sin_vars",1
d_l_s.usect"sin_vars",1
.text
SSBXFRCT
STM#d_coef_s,AR5;movecoeffstable_s
RPT#3
MVPD#table_s,*AR5+
STM#d_coef_s,AR3
STM#d_xs,AR2
STM#d_l_s,AR4
ST#7FFFH,d_l_s
SQUR*AR2+,A;A=x^2
STA,*AR2;(AR2)=x^2
||LD*AR4,B;B=1
MASR*AR2+,*AR3+,B,A;A=1-x^2/72,T=x^2
MPYAA;A=T*A=x^2(1-x^2/72)
STHA,*AR2;(d_temp)=x^2(1-x^2/72)
MASR*AR2-,*AR3+,B,A;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)
MPYA*AR2+;B=x^2(1-x^2/42(1-x^2/72))
STB,*AR2;(d_temp)=x^2(1-x^2/42(1-x^2/72))
||LD*AR4,B;B=1
MASR*AR2-,*AR3+,B,A;A=1-x^2/20(1-x^2/42(1-x^2/72))
MPYA*AR2+;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))
STB,*AR2;(d_temp)=B
||LD*AR4,B;B=1
MASR*AR2-,*AR3+,B,A;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))
MPYAd_xs;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))
STHB,d_sinx;sin(theta)
RET
cosx:
.defd_xc,d_cosx
d_coef_c.usect"coef_c",4
.data
table_c.word0249H;C1=1/(7*8)
.word0444H;C2=1/(5*6)
.word0AABH;C3=1/(3*4)
.word4000H;C4=1/2
d_xc.usect"cos_vars",1
d_squr_xc.usect"cos_vars",1
d_temp_c.usect"cos_vars",1
d_cosx.usect"cos_vars",1
c_l_c.usect"cos_vars",1
.text
SSBXFRCT
STM#d_coef_c,AR5;movecoeffstable_c
RPT#3
MVPD#table_c,*AR5+
STM#d_coef_c,AR3
STM#d_xc,AR2
STM#c_l_c,AR4
ST#7FFFH,c_l_c
SQUR*AR2+,A;A=x^2
STA,*AR2;(AR2)=x^2
||LD*AR4,B;B=1
MASR*AR2+,*AR3+,B,A;A=1-x^2/56,T=x^2
MPYAA;A=T*A=x^2(1-x^2/56)
STHA,*AR2;(d_temp)=x^2(1-x^2/56)
MASR*AR2-,*AR3+,B,A;A=1-x^2/30(1-x^2/56);T=x^2(1-x^2/56)
MPYA*AR2+;B=x^2(1-x^2/30(1-x^2/56))
STB,*AR2;(d_temp)=x^2(1-x^2/30(1-x^2/56))
||LD*AR4,B;B=1
MASR*AR2-,*AR3+,B,A;A=1-x^2/12(1-x^2/30(1-x^2/56))
SFTAA,-1,A;-1/2
NEGA
MPYA*AR2+;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
MAR*AR2+
RETD
ADD*AR4,16,B;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
STHB,*AR2;cos(theta)
RET
.end
命令文件
MEMORY
{
PAGE0:
EPROM:
org=0E000H,len=1000H
VECS:
org=0FF80H,len=0080H
PAGE1:
SPRAM:
org=0060H,len=0020H
DARAM1:
org=0080H,len=0010H
DARAM2:
org=0090H,len=0010H
DARAM3:
org=0200H,len=0200H
}
SECTIONS
{
.text:
>EPROMPAGE0
.data:
>EPROMPAGE0
STACK:
>SPRAMPAGE1
sin_vars:
>DARAM1PAGE1
coef_s:
>DARAM1PAGE1
cos_vars:
>DARAM2PAGE1
coef_c:
>DARAM2PAGE1
sin_x:
align(512){}>DARAM3PAGE1
.vectors:
>VECSPAGE0
}
八,仿真结果及分析
仿真波形图:
输出结果显示,在CCS图形观察窗口得到了频率稳定,信号干扰小,波形失真度较小的正弦信号。
九,设计心得
通过这次课程设计使我对DSP这门课程有了更加深刻的认识,基于课程理论只是和网上资料,是我对DSP的功能和芯片应用有了更广泛和具体的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的理解。
在课程设计过程中,遇到了很多困难,但是经过不断地查阅资料和实验,在老师和同学的帮助下终于克服了困难找到解决的办法,从而完成了课程设计。
这次课程设计使我学到了很多课本中没有的知识,不仅仅是对于CCS环境的应用和DSP的设计方面,在日常生活中,为人处世的等方面都有多感悟。
更加明白了,“一分耕耘一分收获”的道理。
这些都将是我以后学习生活和工作中不可多得的宝贵财富,在以后的日子里不断的给我警示和指引。
DSP原理及应用
课程设计
题目:
正弦信号发生器设计
学院:
信息工程学院
专业班级:
信息0802
姓名:
杜德利
学号:
2008001219
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dsp