HUT-基于C6000的QPSK解调器设计与实现_第1页
HUT-基于C6000的QPSK解调器设计与实现_第2页
HUT-基于C6000的QPSK解调器设计与实现_第3页
HUT-基于C6000的QPSK解调器设计与实现_第4页
HUT-基于C6000的QPSK解调器设计与实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 湖 南 工 业 大 学课 程 设 计资料袋 计算机与通信 学院(系、部) 20152016 学年第 一 学期课程名称: DSP应用 课程设计 指导教师: 龙永新 职称 副教授 学生姓名: 戴勇建 专业班级 通信1201班 学号12408200115 设计题目: 基于C6000的QPSK解调器设计与实现 成 绩: 起止日期: 2015 年 12 月 7 日 至 2015 年 12 月 18 日 目录清单序号材料名称资料数量备注1课程设计任务书12课程设计说明书13课程设计图纸0张456- 1 -DSP应用课程设计设计说明书基于C6000的QPSK解调器设计与实现起止日期: 2015年 12 月

2、 7 日 至 2015年 12 月 18 日学生姓名戴勇建班级通信1201学号12408200115成绩指导教师(签字)计算机与通信学院2015年 12 月 18 日课题名称基于C6000的QPSK解调器设计与实现人 数6组 长戴勇建同组人员周利莎、戴平凡、龚胜、陈策力、许增、胡卫明课题的主要内容和要求1.主要内容:(1)编写程序。 (2)程序要完善、优化,能运行于C5402开发板,能演示输入输出数据的完整图形,显示结果,并对程序或相关设计予以解释。2.主要任务:(1)算法设计;(2)程序设计;(3)程序的调试与各项性能的测试。具体任务1、编写程序,对 QPSK调制信号进行解调。在 DSP 编

3、程时,直接把载波放入存储器,然后通过统计的方法判断是“1”还是“0” ,最后通过并串转换还原出原来信号。2、程序完善、优化,面向C6000开发调试。3、能演示输入输出数据的完整图形,显示结果,并对程序或相关设计予以解释。时间安排与完成情况12月07日:分组、任务分配、课题理解。12月08日-12月14日:功能、程序设计、系统设计和实现。12月15日-12月17日:实验验证和考核。12月18日:总结、书写课程设计说明书。一、设计目的1、熟悉QPSK解调器的原理、特点和应用 2、掌握QPSK解调器设计方法 3、熟悉使用DSP实现QPSK信号解调的设计过程通过该设计,熟悉QPSK解调器的原理和方法,

4、掌握其DSP程序设计与实现过程,以及程序的调试技巧。是对DSP应用技术理论学习的总结和补充,为DSP应用系统的开发设计打下基础。二、设计原理 QPSK 信号解调可以采用相干解调的方法实现,下图为方框图:三、设计所需仪器与设备1、PC微机1台,安装CCS3.02、DSP仿真器TDS510-USB2.0,1套四、设计内容1、编写程序,对 QPSK调制信号进行解调。在 DSP 编程时,直接把载波放入存储器,然后通过统计的方法判断是“1”还是“0” ,最后通过并串转换还原出原来信号。2、程序完善、优化,面向C6000开发调试。3、能演示输入输出数据的完整图形,显示结果,并对程序或相关设计予以解释。五、

5、设计步骤1、用仿真机将计算机与TI C54x开发板连接好,然后运行CCS软件。2、新建一个项目:点击Project-New,将项目命名为DEQPSK,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。3、新建一个源文件:点击点击FileNewSource File可以打开一个文本编辑窗口,点击 保存按键,保存在和项目相同的一个文件夹下面(DEQPSK),保存类型选择*.C(如果源文件 是C语言编写的,保存类型选择*.C,如果使用汇编语言编写的,选择*.ASM为保存类型),我们在这里将保存名字命名为DEQPSK.c 。

6、 4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对该源文件 进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击DEQPSK.pjt, 在弹出的菜单中选择Add Files,然后将刚才建立的DEQPSK.c文件添加到该项目中去。 5、编写源程序: 在工程管理器中双击DEQPSK.c ,将出现文本编辑窗口,在该文本编辑窗口中输入如 下内容:#include <math.h>#define InputLength 15 /*IQ两路的长度*/#define SineLenth 64 /*一个周期正谐波的长度*/#define p1(sineLe

7、ngth/8)*1 /*第一相位*/#define p2(sineLength/8)*3/*第二相位*/#define p3(sineLength/8)*5 /*第三相位*/#define p4(sineLength/8)*7 /*第四相位*/#define OutputLength InputLength*SineLength /*输出数据的总长度*/#define pi 3.14159/*/*子函数和子程序定义开始*/void main()int i=0,j=0,a=0,n,x,b=0;int IInputLength=0,0,0,1,0,0,1,1,0,0,0,1,1,1,1;int Q

8、InputLength=0,1,1,1,1,1,0,0,0,0,0,1,1,1,1;void PhaseSelection(int a); /*相位选择函数声明*/IER=0;for(i=0;i<SineLength;i+) /*在sin_data里面存储一个正弦波*/sin_datai=2047+(sin)(2047.0*sin(2*pi*i/(SineLength); /*调用sin函数*/for(j=0;j<SineLength;j+) /* 再往sin_data里面存储一个sin波形,这样sin_data里有两个sin波形*/sin_datai+=sin_dataj;for

9、(j=0;j<OutputLength+64;j+) /将输出数组初始化QPSKj=0;for(j=0;j<InputLength;j+) /OQPSK相位选择if(Ij=1&&Qj=1)phaseSelection(p1); /*选择pi/4的相位*/if(Ij=0&&Qj=1)phaseSelection(p2); /*选择3pi/4的相位*/if(Ij=0&&Qj=0)phaseSelection(p3); /*选择5pi/4的相位*/if(Ij=1&&Qj=0)phaseSelection(p3); /*选择5

10、pi/4的相位*/for(i=OutputLength;i<OutputLength+64;i+)QPSKi=0;for(i=0;i<OutputLength+8;i+)*(int*)(0x30000+4*i)=QPSKi; /把数据给一个地址,然后从这个地址看结果(xt1029)a=*(int*)(0x30000+4*i);*(int *)(0x8000+4*i)=a;for(;)submit_qdma();wait();/*相位选择函数定义结束*/解调程序部分源代码#include <math.h>#define InputLength 15 /*IQ两路的长度*/

11、#define SineLenth 64 /*一个周期正谐波的长度*/#define p1(sineLength/8)*1 /*第一相位*/#define p2(sineLength/8)*3/*第二相位*/#define p3(sineLength/8)*5 /*第三相位*/#define p4(sineLength/8)*7 /*第四相位*/#define OutputLength InputLength*SineLength /*输出数据的总长度*/#define pi 3.14159int w=0;static int m=0;static int IInputLength=0,0,0

12、,1,0,0,1,1,0,0,0,1,1,1,1; /*输入数据1路*/static int QInputLength=0,1,1,1,1,1,0,0,0,0,0,1,1,1,1; /*输入数据Q路*/static int QPSKOutputLength;static int sin_dataSineLength*2;static int cos_dataSineLength;static int I_multply_cosOutputLength;static int Q_multply_sinOutputLength;static int I_DeQPSKInputLength;stat

13、ic int Q_DeQPSKInputLength;/*子函数和子程序定义*/void main()int i=0,j=0;void PhaseSelection(int a);void multply();void IQ_Decision();for(i=0;i<SineLength;i+)sin_datai=(int)(64.0*sin(2*pi*i/(SineLength);cos_datai=(int)(64.0*cos(2*pi*i/(SineLength);i=SineLength;for(j=0;j<SineLength;j+)sin_datai+=sin_data

14、j;for(j=0;j<InputLength;j+)if(Ij=1&&Qj=1)PhaseSelection(p1);else if(Ij=0&&Qj=1)PhaseSelection(p2);else if(Ij=0&&Qj=0)PhaseSelection(p3);else PhaseSelection(p4);asm('nop');multply();IQ_Decision();for(i=0;i<OutputLength+8;i+)*(int*)(0x30000+4*i)=I_DeQPSKi;*(int*)(

15、0x31000+4*i)=Q_DeQPSKi;for(;);/*相位选择函数定义开始*/void PhaseSelection(int a)int count=0;for(m;m<OutputLength;m+)QPSKm=sin_dataa+if(count+=SineLength)break/*本地信号相乘函数定义开始*/void multply()int i=0,j=0;for(i=0;i<OutputLength;i+)I_multply_cosi=QPSKi*cos_dataj;Q_multply_sini=QPSKi*sin_dataj;j+;if(j=SineLeng

16、th)j=0;6 、编写链接配置文件如下: vectors.obj DEQPSK.obj -o DEQPSK.out -m DEQPSK.map -estart MEMORY PAGE 0: EPROM: org=0090H,len=0F70H VECS: org=0080H,len=0010H PAGE 1: DARAM: org=1000H,len=2000H SECTIONS .text :> EPROM PAGE 0 data :> DARAM PAGE 1 STACK :> DARAM PAGE 1 .bss :> DARAM PAGE 1 .vectors

17、:> VECS PAGE 0 7 、编写中断向量表文件 /* vectors.asm */ .title “vectors.asm” /*中断向量表的文件名*/ .ref start /*引用外部定义的标号*/ .sect “.vectors” /* 定义初始化段名 */B start /* 引用start */.end8 、建立文件sin_cos.inc,文件内容如下: sin: .word 9512, 18204, 25329, 30273, 32610, 32138, 28898,23170 .word 15446, 6392, -3211, -12539, -20787, -27

18、245, -31356, -32767 .word -31357, -27245, -20787, -12539, -3211, 6392, 15446, 23170 .word 28898, 32138, 32610, 30273, 25330, 18205, 9512, 0 cos: .word 31357, 27245, 20787, 12539, 3211, -6392, -15446, -23170 .word -28898, -32138, -32610, -30273, -25330, -18205, -9512, 0 .word 9511, 18204, 25329, 3027

19、3, 32610, 32138, 28898,23170 .word 15446, 6392, -3211, -12539, -20787, -27245, -31356, -32767 9、对项目进行编译和链接: 把DEQPSK.c、vectors.c、DEQPSK.cmd、sin_cos.inc依次添加到项目后,点击ProjectCompile File,在项目编译成功之后点击ProjectBuild选项对该项目进行链接,生成*.out文件。 10、装载可执行文件:要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:FileLoad Programe再选择生成DEQPSK.out文件就可以将程序装载到DSP的内部存储器中。 11、运行程序并查看结果:a) 在“loop”处设置探针,在标号“J1”的下一行设置探针和断点,在标号“J2”的下一行设置探针和断点。 b) 使第一个探针和工程目录中的source.dat(QPSK调制后的数据文件)相关联(作为文件输入),设置如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论