- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP课程设计
实 验 报 告
信号发生器的设计
目 录
一、设计任务 …………………………………………………2
二、实验目的 …………………………………………………2
三、设计内容…………………………………………………2
四、实验原理…………………………………………………2
五、程序设计…………………………………………………7
1、流程图
2、程序源代码
六、CCS5000程序调试………………………………………11
1、新建工程、编译过程、工程架构
2、程序运行结果(数据显示(用watch window观察变量的变化)、图形显示)
七、实验总结…………………………………………16
八、参考资料…………………………………………17
设计任务书
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。信号发生器已广泛应用于科学实验、通讯和控制等应用领域中。
使用 DSP 和 D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。本设计要求采用DSP及其D/A转换器产生上述各种信号波形。
实验目的:
1)了解产生信号的两种方法;
2)熟悉使用C语言编写程序;
3)熟悉C语言对CCS的访问和影响;
4)熟练使用软件CCS5000对程序的完整调试过程。
设计内容
使用DSP产生300—4000HZ的正弦信号,要求使用计算法,并且频率可变、幅度可变、直流分量可变。用软件CCS5000编程实现,并硬件(DSK板或示波器)连接进行功能演示。
发挥部分:使用DSP产生300—4000HZ的方波和三角波。
设计方案、算法及原理说明
(1)产生连续的波形的方法主要有以下两种方法:
1、查表法:把事先将需要输出的数据计算好,存储在DSP中,然后依次输出就可以了。查表法的优点是速度快,可以产生频率较高的波形,而且不占用DSP的计算时间;查表法的缺点是在于需要占用DSP的内部的存储空间,尤其对采样频率比较大的输出波形,这样,需要占用的内部的空间将更大,而DSP内部的存储空间毕竟有所限制。这使得查表法的应用场合十分有限。
2、计算法:采用计算的方法依次计算数据而后输出,然后再计算而后输出。计算法的优缺点正好和查表法相反。即:其优点是不占用DSP的存储空间,其缺点是占用DSP的计算时间,使得执行程序的开销变大。
本实验将用第二种方法即计算法产生一个正弦波信号,从DA输出。由正弦信号的递推公式:
其中,,f为正弦信号的频率,设。由上式可见,若要使递推公式能够进行,则要求求出函数的前两个值,这里是和。结果为:
(2)调频调幅
若要修改正弦信号的频率,幅值和直流分量,直接修改程序中宏定义的f,amp和q的值即可。
程序设计
(1)程序设计:
要根据正弦信号的递推公式,给出初始的两个值,以使得程序自己带入公式循环计算下去,即可得到正弦波形。但是,该法求少数点还可以,若产生连续正弦波,则积累误差将会很大,该法就不可取了,所以还要对所求得点数有限制,不太多就可以了。
程序的算法依据的是正弦函数递推公式,先指定最先的两个数,之后通过设定正弦函数数组,根据公式得到每个点的值;
为了方便画图,进行了线性变换,将正弦函数的数组值传给dacdata;
为了在DSK板和示波器上观测该图形,又把dacdata的变换数据从IOSR管脚输出;
为了解决快速CPU和慢速外设的矛盾,编写延时子程序,供主函数调用。
图1 正弦波程序设计流程图
正弦波发生程序如下:
ioport unsigned port0bfff; //定义管脚变量port0bfff为无符号型
#include stdio.h //导入库函数
#include type.h
#include board.h
#include codec.h
#include math.h
#include mcbsp54.h
#define f 400 //定义函数的频率
#define q 0 //定义函数的直流
文档评论(0)