精品基于dsp技术的正弦信号发生课程毕业论文论文.docx
- 文档编号:13910866
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:21
- 大小:233.13KB
精品基于dsp技术的正弦信号发生课程毕业论文论文.docx
《精品基于dsp技术的正弦信号发生课程毕业论文论文.docx》由会员分享,可在线阅读,更多相关《精品基于dsp技术的正弦信号发生课程毕业论文论文.docx(21页珍藏版)》请在冰点文库上搜索。
精品基于dsp技术的正弦信号发生课程毕业论文论文
第一章:
绪论
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。
图一是数字信号处理系统的简化框图。
此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。
其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。
随后,信号经采样和AD转换后,变成数字信号x(n)。
数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经DA转换器变成模拟信号。
此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。
图一数字信号处理系统简化框图
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
第二章:
TMS320C54x芯片介绍
1.总线结构
C54x包括8条16比特宽度的总线,其中:
Ø一条程序总线(PB):
传送取自程序存储器的指令代码和立即操作数
Ø三条数据总线(CB、DB、EB):
将内部个单元连接在一起,CB和DB传送读自数据存储器的数据,EB传送写入存储器的数据
Ø四条地址总线(PABCABDABEAB):
传送执行指令所需的地址
2.CPU
C54x的CPU结构包括:
Ø40比特的ALU,其输入来自16比特立即数、16比特来自数据存储器的数据、暂时存储器、T中的16比特数、数据存储器中两个16比特字、数据存储器中32比特字、累加器中40比特字。
Ø2个40比特的累加器,分为三个部分,保护位(39-32比特)、高位字(31-16比特)、低位字(15-0比特)。
Ø桶型移位器,可产生0到31比特的左移或0到16比特的右移。
Ø17x17比特的乘法器
Ø40比特的加法器
Ø比较选择和存储单元CSSU
Ø数据地址产生器DAGEN
Ø程序地址产生器PAGEN
3.外设
C54x包括:
Ø通用IO引脚,XF和BIO
Ø定时器
ØPLL时钟产生器
ØHPI口8比特或16比特
Ø同步串口
Ø带缓存串口BSP
Ø多路带缓存串口McBSP
Ø时分复用串口TDM
Ø可编程等待状态产生器
Ø可编程bankswitching模块
Ø外部总线接口
ØIEEE1149.1标准JTAG口
4.存储器
4.1存储空间
一般而言,C54x的存储空间可达192K16比特字,64K程序空间,64K数据空间,64KIO空间。
依赖其并行的工艺特性和片上RAM双向访问的性能,在一个机器周期内,C54x可以执行4条行并行存储器操作:
取指令,两操作数读,一操作数写。
使用片内存储器有三个优点:
高速执行(不需要等待),低开销,低功耗。
4.2程序存储区
C54x有片内ROM、DARAM、SARAM,这些区域可以通过软件配置到程序空间。
当地址落在这些区域内,自动对这些区域进行访问,当地址落在这些区域以外,自动产生对外部存储器的访问。
4.2.1片内ROM
片内ROM(4K16K24K28K或48K字)可能包括的内容有:
Ø引导程序,可以从串口、外部存储器、IO口或HPI口引导
Ø256字的率扩展
第三章:
CCS简介
1.CCS工作模式
CCS是TI公司针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。
CCS有两种工作模式,即:
Ø软件仿真器模式:
可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。
Ø硬件在线编程模式:
可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。
2.CCS的组成
CCS的开发系统主要由以下组件构成
1.TMS320C54x集成代码产生工具
用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。
主要包括汇编器、链接器、CC++编译器和建库工具等。
2.CCS集成开发环境
集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。
包括编辑工具、工程管理工具和调试工具等。
3.DSPBIOS实时内核插件及其应用程序接口API
主要为实时信号处理应用而设计。
包括DSPBIOS的配置工具、实时分析工具等。
4.实时数据交换的RTDX插件和相应的程序接口API
可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。
5.由TI公司以外的第三方提供的应用模块插件
3.CCS的主要功能
CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持CC++和汇编的混合编程,其主要功能如下
①具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等;
②含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;
③高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;
④工程项目管理工具可对用户程序实行项目管理。
在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;
⑤基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;
⑥断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;
⑦探测点工具,可用于算法的仿真,数据的实时监视等;
⑧分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟;
⑨数据的图形显示工具,可以将运算结果用图形显示,包括显示时域频域波形、眼图、星座图、图像等,并能进行自动刷新;
⑩提供GEL工具。
利用GEL扩展语言,用户可以编写自己的控制面板菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等;
⑪支持多DSP的调试;
⑫支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换;
⑬提供DSPBIOS工具,增强对代码的实时分析能力。
4.CCS的安装及设置
在使用CCS之前,必须首先按照CCS的产品说明安装CCS软件;其次创建CCS系统配置,进行环境设置;最后,按照具体使用的仿真器,安装目标板和驱动程序。
5.系统配置要求
①机器类型:
IBMPC及兼容机;
②操作系统:
MicrosoftWindows或WindowsNT4.0;
③机器资源配置要求:
机器部件
最低配置
推荐配置
内存
32MB
128MB
剩余硬盘空间
100MB
200MB
CPU
Pentium
PentiumⅢ以上
显示分辨率
SVGA800600
SVGA1024768
主板插槽
一条空余EISA插槽
一条空余EISA插槽
第四章:
正余弦信号发生器的实现原理
1.正弦波信号发生器
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法
正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前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。
2.计算一个角度的正弦值
计算一个角度x的正弦值,可利用泰勒级数的展开式,采用子程序的调用方式来实现。
在调用前先在数据存储器d_xs单元中存放x的弧度值,计算结果存放在d_sinx单元中
程序中要用到一些存储单元存放数据和变量,存储单元的分配如下:
d_xs:
x;d_squr_xs:
x2
d_temp_s:
暂存;d_sinx:
计算结果sinx
c_1_s:
7FFFh(数值1);d_coef_s:
泰勒系数
存储单元分配图:
程序清单sinx.asm:
.title“sinx.asm”
.mmregs
.defstart
.refsin_start,d_xs,d_sinx
STACK:
.usect“STACK”,10
start:
STM#STACK+10,SP
LD#d_xs,DP
ST#6487H,d_xs
CALLsin_start
end:
Bend
sin_start:
.defsin_start
d_coef_s.usect“coef_s”,4
.data
table_s:
.word01C7H
.word030BH
.word0666H
.word1556H
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
c_1_s.usect“sin_vars”,1
.text
SSBXFRCT
STM#d_coef_s,AR4
RPT#3
MVPD#table_s,*AR4+
STM#d_coef_s,AR2
STM#d_xs,AR3
STM#c_1_s,AR5
ST#7FFFH,c_1_s
SQUR*AR3+,A
STA,*AR3
||LD*AR5,B
MASR*AR3+,*AR2+,B,A
MPYAA
STHA,*AR3
MASR*AR3-,*AR2+,B,A
MPYA*AR3+
STB,*AR3
||LD*AR5,B
MASR*AR3-,*AR2,B,A
MPYA*AR3+
STB,*AR3
||LD*AR5,B
MASR*AR3-,*AR2,B,A
MPYAd_xs
STHB,d_sinx
RET
.end
3.计算一个角度的余弦值
计算余弦值与计算正弦值相同。
存储单元分配图:
程序清单cosx.asm:
.title“cosx.asm”
.mmregs
.def_c_int00
.refcos_start,d_cosx
STACK:
.usect“STACK”,10
_c_int00:
STM#STACK+10,sp
LD#d_x,DP
ST#6487h,d_x
CALLcos_start
end:
Bend
cos_start:
.defcos_start
d_coeff.usect“coeff”,4
.data
Table.word0249h
.Word0444h
.Word0aahh
.word4000h
d_x.usect“cos_vars”,1
d_squr_x.usect“sin_vars”,1
d_temp.usect“sin_vars”,1
d_cosx.usect“sin_vars”,1
c_1.usect“sin_vars”,1
.text
SSBXFRCT
STM#d_coeff,AR5
Rpt#3
MVPD#table,*AR5+
STM#d_coeff,AR3
STM#d_x,AR2
STM#c_1,AR4
ST#7FFFH,c_1
SQUR*AR2+.A
STA,*AR2
LD*AR4,B
MASR*AR2+,*AR3+,B,A
MPYAA
STHA,*AR2
MASR*AR-,*AR3+,B,A
MPYA*AR2+
STB,*AR2
LD*AR4,B
MASR*AR2-,*AR3,B,A
SFTAA,-1,A
NEGA
MPYA*AR2+
MAR*AR2+
RETD
ADD*AR4,16,B
STHB,*AR2
RET
.end
正余弦信号发生器程序清单
;ThisfunctiongeneratesthesinewaveofangleusingtheTaylorseriesexpansion
;sin(theta)=x(1-x^22*3(1-x^24*5(1-x^26*7(1-x^28*9))))
;cos(theta)=1-x^22*3(1-x^24*5(1-x^26*7(1-x^28*9)))
;sin(2*theta)=2*sin(theta)*cos(theta)
.title"sin.asm"
.mmregs
.def_c_int00
.refsinx,d_xs,d_sinx,cosx,d_xc,d_cosx
sin_x:
.usect"sin_x",360
STACK:
.usect"STACK",10
k_theta.set286
PA0.set0
_c_int00
.text
STM#STACK+10,SP
STMk_theta,AR0
STM0,AR1
STM#sin_x,AR6
STM#90,BRC
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP
STL
STL
CALLsinx
CALLcosx
LD#d_sinx,DP
LD@d_sinx,16,A
MPYA@d_cosx
STHB,1,*AR6+
MAR*AR1+0
loop1:
STM#sin_x+89,AR7
STM#88,BRC
RPTBloop2-1
LD*AR7-,A
STLA,*AR6+
loop2:
STM#179,BRC
STM#sin_x,AR7
RPTBloop3-1
LD*AR7+,A
NEGA
STLA,*AR6+
loop3:
STM#sin_x,AR6
STM#1,AR0
STM#360,bk
loop4:
PORTW*AR6+0%,PA0
Bloop4
sinx:
.defd_xs,d_sinx
.data
table_s.word01c7h
.word030bh
.word0666h
.word1556h
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
c_l_s.usect"sin_vars",1
.text
SSBXFRCT
STM#d_coef_s,AR5
RPT#3
MVPD#table_s,*AR5+
STM#d_coef_s,AR3
STM#d_xs,AR2
STM#c_l_s,AR4
ST#7FFFh,c_l_s
SQUR*AR2+,A
STA,*AR2
||LD*AR4,B
MASR*AR2+,*AR3+,B,A
MPYAA
STHA,*AR2
MASR*AR2-,*AR3+,B,A
MPYA*AR2+
STB,*AR2
||LD*AR4,B
MASR*AR2-,*AR3+,B,A
MPYA*AR2+
STB,*AR2
||LD*AR4,B
MASR*AR2-,*AR3+,B,A
MPYAd_xs
STHB,d_sinx
RET
cosx:
.defd_xc,d_cosx
d_coef_c.usect"coef_c",4
.data
table_c.word0249h
.word0444h
.word0aabh
.word4000h
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
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
STA,*AR2
||LD*AR4,B
MASR*AR2+,*AR3+,B,A
MPYAA
STHA,*AR2
MASR*AR2-,*AR3+,B,A
MPYA*AR2+
STB,*AR2
||LD*AR4,B
MASR*AR2-,*AR3+,B,A
SFTAA,-1,A
NEGA
MPYA*AR2+
MAR*AR2+
RETD
ADD*AR4,16,B
STHB,*AR2
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
}
.title"sin_v.asm"
.ref_c_int00
.sect".vectors"
B_c_int00
.end
第五章:
调试
1.CCS工程项目的调试
1.1程序的运行控制
在调试程序的过程中,经常需要复位、执行、单步执行等操作。
这些操作称为程序运行控制。
CCS开发环境提供了多种调试程序的运行操作。
用户可以使用调试工具条或调试菜单“Debug”中的相应命令控制程序的运行。
1.创建工程项目
①进入CCS集成开发环境
②创建一个新的工程项目
③将源程序文件、链接命令文件、库文件和头文件添加到工程项目中
④单击所有“+”项观看工程项目所包含的文件双击各图标,打开各文件
1.2.工程项目的编译
①工程项目的编译链接
1.3.设置探测点
①将volume.out文件装入目标板
②设置探测点
③为探测点选择链接的数据文件
④设置数据文件的属性
⑤将数据文件链接到探测点
⑥关闭“FileIO”对话框
1.4.工程项目的调试和结果的图形显示
①设置断点
②设置输入变量的图形属性
③设置输出变量的图形属性
④运行程序,显示图形
⑤调整输出增益
1.5.观察寄存器的运行数据
2..仿真波形图
第六章:
总结
本次实训过程中遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了实训进程。
并在过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。
实训过程中经常遇到问题,而在场的老师为各位同学提供了解答方案;辅助同学攻克了实训中的难点。
同时也会请老师指点不足之处,以加以改进,完善作品。
虽然机房内的气温较高,但好歹天气并不太热;加之机房内设空调,使实训过程大大降低了外部环境的影响,有了一个不错的实训环境。
实训每次都还算完成的不错,这次也一样不是太差,毕竟啊,对自己还是有信心的,继续加油。
。
。
。
参考文献:
【1】戴明帧.数字信号处理的硬件实现[M].北京:
航空工业出版社,1988
【2】干张伟雄,陈亮,徐光辉.DSP集成开发与应用实例【M】。
北京:
电子工业出版社
【3】戴明桢,周建江.TMS320C54XDSP结构,原理及应运【M】北京航空航天出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 基于 dsp 技术 正弦 信号 发生 课程 毕业论文 论文