1 / 15
文档名称:

TMSCxDSP函数发生器设计方案.doc

格式:doc   大小:184KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

TMSCxDSP函数发生器设计方案.doc

上传人:在水一方 2018/9/27 文件大小:184 KB

下载得到文件列表

TMSCxDSP函数发生器设计方案.doc

相关文档

文档介绍

文档介绍:广东石油化工学院
DSP综合实验报告
课程名称: DSP系统开发与设计
实验题目: 函数信号发生器
学号:
姓名:
班级:
指导老师:
实验日期: 2012-6-11至2012-6-15
基于TMS320C54x DSP的函数发生器的设计
设计目的:
了解数字波形产生的原理;
学习用DSP产生各种波形的基本方法和步骤;
掌握DSP与D/A转换器接口的使用。
设计设备
计算机、DSP仿真器、ZYE1801B实验箱、20M示波器
设计原理
波形产生是DSP的重要应用之一。而正弦信号发生器的设计则是波形产生应用的一个重要方面,它在通信领域有着广泛的应用。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法
正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前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。
为了减少使用的存储器,可以采用正弦信号的对称性,复制90~180度的正弦值和180~360度的正弦值。
余弦信号的产生同样可以采用多种方法产生。一是采用公式计算得到,二是采用正弦信号变换得到。
方波信号产生可以通过轮流输出两个不同大小的数值通过A/D转换得到。
设计内容
本设计题目以TMS320C54x DSP为目标器件,设计并实现基于迭代法的“正弦序列生成”算法及其DSP程序。
设计步骤:
熟悉正弦信号发生器的算法以及在DSP系统的实现
熟悉A/D转换的原理及实验箱的链接
掌握A/D转换的程序的编写
编写DSP的正弦信号发生器的程序
编写定时程序产生100HZ、1KHZ、10KHZ的正弦、余弦以及100K、1M的方波信号,每种类型的波形单周期360个点。
编写按键程序,控制输出。用三个拨码开关对DSP进行输入,输入的0~7对应的8种不同的波形。
用示波器观察各个波形
分析波形失真的原因。
实验步骤
1. 熟悉本实验原理。
2. 阅读本实验样例程序。
3. 依次连接主板上的PC10、PC11、TP32到PC15、PC16、GND;依次连接主板上的PC13、PC14、M58到插板上的DJ0、DJ1、S12。
4. 将计算机与ZYE1801C实验箱通过并口P1相连。
5. S软件客户软件\DSP程序\test19,通过插板上的JP1,JP2,JP3来选择不同的波形。
6. 用示波器观察DA0的输出波形。
六、设计的硬件结构框图
3位数字量输入 12位数字量输出模拟量输出
DSP芯片
D/A转换器
实验代码
先计算0~45°(°)的sin和cos值,在利用sin2a=2sina*cosa求出sin值(间隔为1°)。然后,通过复制,获得0~359°的正弦值。重复向PA口输出,便可得到正弦波。
.title ""
.mmregs
.global main
.def start
.ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x: .usect "sin_x",360
cos_x: .usect "cos_x",360
fangbo: .usect "fangbo",360
STACK: .usect "STACK",10H
k_theta: .set 286
TIM0 .set 0024H
PRD0 .set 0025H
TCR0 .set 0026H
PA .set 0100H
.text
start:;产生正弦波数据
STM k_theta,AR0
STM #0,AR1
STM #sin_x,AR6
STM #90,BRC
RPTB loop1-1
LDM AR1,A
LD #d_xs,DP
STL A,***@d_xs
STL A,***@d_xc
CALL sinx
CALL cosx
LD #d_sinx,DP
LD ***@d_sinx,16,A
M