基于DSP的信号发生器的设计.doc
《基于DSP的信号发生器的设计.doc》由会员分享,可在线阅读,更多相关《基于DSP的信号发生器的设计.doc(18页珍藏版)》请在沃文网上搜索。
1、.DSP课程设计实 验 报 告信号发生器的设计 目 录一、设计任务 2二、实验目的 2三、设计内容2四、实验原理2五、程序设计7 1、流程图2、程序源代码六、CCS5000程序调试11 1、新建工程、编译过程、工程架构2、程序运行结果(数据显示(用watch window观察变量的变化)、图形显示)七、实验总结16八、参考资料17一、 设计任务书信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途
2、。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。信号发生器已广泛应用于科学实验、通讯和控制等应用领域中。使用 DSP 和 D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。本设计要求采用DSP及其D/A转换器产生上述各种信号波形。二、 实验目的:1)了解产生信号的两种方法;2)熟悉使用C语言编写程序; 3)熟悉C语言对CCS的
3、访问和影响; 4)熟练使用软件CCS5000对程序的完整调试过程。 三、 设计内容使用DSP产生3004000HZ的正弦信号,要求使用计算法,并且频率可变、幅度可变、直流分量可变。用软件CCS5000编程实现,并硬件(DSK板或示波器)连接进行功能演示。发挥部分:使用DSP产生3004000HZ的方波和三角波。四、 设计方案、算法及原理说明(1)产生连续的波形的方法主要有以下两种方法:1、查表法:把事先将需要输出的数据计算好,存储在DSP中,然后依次输出就可以了。查表法的优点是速度快,可以产生频率较高的波形,而且不占用DSP的计算时间;查表法的缺点是在于需要占用DSP的内部的存储空间,尤其对采
4、样频率比较大的输出波形,这样,需要占用的内部的空间将更大,而DSP内部的存储空间毕竟有所限制。这使得查表法的应用场合十分有限。2、计算法:采用计算的方法依次计算数据而后输出,然后再计算而后输出。计算法的优缺点正好和查表法相反。即:其优点是不占用DSP的存储空间,其缺点是占用DSP的计算时间,使得执行程序的开销变大。本实验将用第二种方法即计算法产生一个正弦波信号,从DA输出。由正弦信号的递推公式: 其中,f为正弦信号的频率,设。由上式可见,若要使递推公式能够进行,则要求求出函数的前两个值,这里是和。结果为: (2)调频调幅 若要修改正弦信号的频率,幅值和直流分量,直接修改程序中宏定义的f,amp
5、和q的值即可。五、 程序设计(1)程序设计:要根据正弦信号的递推公式,给出初始的两个值,以使得程序自己带入公式循环计算下去,即可得到正弦波形。但是,该法求少数点还可以,若产生连续正弦波,则积累误差将会很大,该法就不可取了,所以还要对所求得点数有限制,不太多就可以了。程序的算法依据的是正弦函数递推公式,先指定最先的两个数,之后通过设定正弦函数数组,根据公式得到每个点的值;为了方便画图,进行了线性变换,将正弦函数的数组值传给dacdata;为了在DSK板和示波器上观测该图形,又把dacdata的变换数据从IOSR管脚输出;为了解决快速CPU和慢速外设的矛盾,编写延时子程序,供主函数调用。i在定义范
6、围内?初始化常量、宏定义(IOSR、公式中的_sinx)变量定义:_sinx、dacdata、i调用延时子程序:解决CPU和外设矛盾初始化i和公式中的_sinx0根据公式中的前两项用递推公式计算 i在定义范围内?按照递推公式逐点计算算出的值赋给dacdataDacdata的值赋给IOSR重新初始化i对_sinx线性变化并赋值给dacdata是否是否 图1 正弦波程序设计流程图正弦波发生程序如下:ioport unsigned port0bfff; /定义管脚变量port0bfff为无符号型#include /导入库函数#include #include #include #include #i
7、nclude #define f 400 /定义函数的频率#define q 0 /定义函数的直流分量#define amp 2 /定义函数的幅度值#define pi 3.14159265 /给pi赋值#define IOSR port0bfff /宏定义:管脚port0bfff用IOSR表示,用于输出波形#pragma DATA_SECTION(_sinx,data_buf1) double _sinx200; /定义正弦函数数组为 型的,共200个点#pragma DATA_SECTION(dacdata,data_buf2) int dacdata200; /定义输出即画点函数dacd
8、ata为整型 void delay(int); /调用延时函数,解决快速CPU和慢速外设的矛盾void main(void) /进入主函数,无返回值 unsigned int i=0; /无符号整型变量i,是正弦函数数组的动态下标double a;int cnt=2;brd_init(100);while(cnt-)brd_led_toggle(BRD_LED0);/切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1);/切换LED指示灯1的显示状态delay(1000);brd_led_toggle(BRD_LED2);/切换LED指示灯2的显
9、示状态delay(1000);a=2*pi*f/16000; _sinx0=0; dacdata0=0; _sinx1=amp*sin(a); dacdata1=_sinx1*4096+q*4096; i=1; while(1) if(i+198) break; _sinxi=2*cos(a)*_sinxi-1-_sinxi-2; dacdatai=_sinxi*4096+q*4096; i=0; while(1) if(i198) i=0; IOSR=dacdatai+; /*delay*/void delay(int period) int i,j; for(i=0; iperiod; i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP 信号发生器 设计