基于DSP的OQPSK调制器设计与实现
扫描二维码
随时随地手机看文章
O 引言
OQPSK调制技术是继OPSK之后发展起来的一种恒包络数字调制技术,由于具有较高的频带利用率和在频带受限的系统中抗干扰性能强,被广泛地应用于移动通信和卫星通信领域。传统的OQPSK调制器都是由硬件电路来完成,存在电路复杂、体积大和功耗高等缺点。随着高速DSP处理器的应用,本文提出了一种基于DSP处理器的数字OQPSK调制器实现方案,让OQPSK调制器的大部分功能由DSP处理器执行相应的算法实现,此方案省去了大量的硬件电路,具有体积小、功耗低、稳定可靠等优点。
1 OQPSK调制原理简介
QPSK调制由于同相支路I和正交支路Q的两个比特ab可能同时发生变化,因而存在180°的相位突变,这在频带受限的系统中会引起信号包络的很大起伏,造成邻道干扰。OQPSK调制对此作了改进,它将Q支路的符号在时间上错开Tb,这样上下两个支路的相邻码元不可能同时变化,使得相邻码元相位差最大缩小至90°,从而减小了信号包络的起伏。OQPSK调制的原理如图1所示。
设输入的数据为{Uk},则OQPSK已调波可以表示成:
式中g(t)为基带脉冲波形,为消除码间串扰且误码率最小,g(t)的波形应要求是平方根升余弦函数。为了简单起见,本文中设g(t)为矩形脉冲波形。
2 OQPSK调制器的硬件选择
OQPSK调制器的硬件开发平台采用的是合众达的SEED-DEC5416嵌入式DSP开发板,其系统结构原理如图2所示。处理器是16bit定点DSP芯片TMS320VC5416,OQPSK信号的16位各样点数据送往转换精度只有14位的D/A转换控制器TLC32044,该控制器只对16位中的高14位数据进行D/A转换,转换后的波形送示波器显示。[!--empirenews.page--]
3 OQPSK调制的软件设计
主程序中首先对TLC32044芯片初始化(过程请查阅相应的PDF资料),然后调用执行OQPSK调制子程序。下面介绍本文设计的在DSP处理器上实现OQPSK调制的方法。
3.1 基于DSP的OQPSK调制算法
设信息流为…bkakbk-1ak-1,并假定已经保存在DSP的数据存储空间中(实际应用中可以使用单片机通过HPI接口向DSP写入要发送的信息流),其中bkakbk-1ak-1可以看成是一个字(16位)的最低4位。将输入的信息流串并转换成双比特码元,可以对信息码字每次右移动2位实现。Q支路延迟和I支路的对应关系可以采用测试ak、bk-1和bk这三位码元来完成,若测试位为O,则对正弦或余弦值取负以完成单/双极性变换的功能。因此,可以画出基于DSP的OQPSK调制算法流程,如图3所示。图3中已经假设I支路一个码元包含2个周期的余弦波,一个周期的余弦波采样32个点,变量Count用于控制信息流的长度,OQPSK_Buf缓冲区用于保存调制完成的采样点数据。
3.2 正弦和余弦数据的获取
上述算法中需要正弦或余弦各点的采样值,幅度为1的正弦各点采样值大多都是小数,而16位定点DSP芯片的操作数是整数,为此要设定小数点在16位二进制数中的位置,考虑到调制后波形的最大值是,因此对正弦或余弦的数值采用Q14表示法才能满足调制后数据的范围。显然,在汇编程序中按“.word x”形式直接输入正弦和余弦的各点采样值(Q14)比较繁琐,可以用下面的一段C语言程序生成正弦采样点数据文件(程序中已将正弦载波的频率归一化),然后在TC2.0软件的当前路径下将生成的包含文件sindata.inc移动到由软件cos2.O建立的工程文件夹内,用汇编伪指令.include将该文件包含进来即可省去繁琐的数据输入。用类似的程序也可生成需要的余弦数据文件。
[!--empirenews.page--]
4 实验结果
首先,在软件开发环境ccs2.0(c5000)下进行OQPSK调制波形的仿真验证。将汇编语言源程序和命令连接文件一起编译、链接并装载运行,接着执行菜单命令View|Graph|Time Frenquency,打开Graph Property Dialog对话框,在该对话框中输入标题名“OQPSK调制信号波形”、变量0QPSK_Buf的起始地址0x0124(命令连接文件中将.bss段定位到DARAM的org=0060h上),并选择数据的长度为512、数据类型为16-bit signed integer及Qvalue的值为14,然后点击该ok按钮即可将OQPSK_Buf缓冲区的已调信号的采样值生成已调信号波形,如图4所示。为了验证OQPSK调制算法及产生的波形的正确性,图5又给出了相同的16位的数据流,在matlab环境下仿真出的OQPSK已调信号波形。两图的波形完全一致,且波形的最大幅度都为。
其次,在SEED-DEC5416硬件平台上对输出的调制波形进行验证。在附录中源程序的开始部分增加对TLC32044芯片初始化代码,然后再改用一个死循环重复将OQPSK_Buf缓冲区保存的已调信号数值依次送往该芯片,在示波器上就可观察到与图4近似完全相同的调制波形。另外,调制速率的大小可以通过从OQPSK_Buf缓冲区取数送D/A转换器后执行一段延时程序来控制。
5 结束语
本文在DSP处理器上设计实现的数字OQPSK调制器,省去了传统调制器的大量的硬件电路,具有功耗低、抗干扰能力强和软件可升级等优点。