基于 DSP Builder的OQPSK调制器设计及FPGA实现
2009-06-11
作者:郑 希, 王和明
摘 要:提出了OQPSK调制器的全数字实现方案,基于DSP Builder 完成了方案的建模仿真并进行了硬件验证,实验表明,所设计的调制器工作稳定、可靠, 达到设计要求。
关键词:OQPSK;FPGA;DDS;DSP Builder
OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,广泛应用于卫星通信和移动通信领域。随着数字调制技术的出现,在有限的带宽内传输高速的数据已成为可能,并且比过去使用的模拟调制,如调幅(AM)和频移键控(FSK)、开关键控(OOK)、脉宽调制(PWM)、脉位调制(PPM)、脉幅调制(PAM)等技术相比有更高的可靠性和抗扰性。目前国内多速率/多制式智能调制解调器己有一些研究成果和芯片问世。但是,国内的产品大多基于通用DSP实现,支持的速率比较低。由于运算量较大和硬件参数的限制,采用通用DSP或普通算法无法胜任高速率调制解调的任务。而用可编程器件实现的全数字调制器则可以说是一种用户全定制的调制方案,所有的参数都可以按照每个特定的用户来修改,做到最优化。此外,FPGA还具有静态可重复编程和动态系统重构的特性,使得硬件的功能可以像软件一样编程修改,极大地提高了电子系统设计的灵活性和通用性。
1 OQPSK调制原理[1]
OQPSK也称为偏移正交相移键控(Offset-QPSK),是QPSK的改进型,OQPSK信号实际上是两路正交双边带信号,与QPSK有同样的相位关系,也是把输入码流分成两路,然后进行正交调制[2]。与QPSK相比,OQPSK的不同点在于它将同相和正交两支路的码流在时间上错开了半个码元周期,由于两支路码元半周期的偏移,每次只有一路可能发生极性翻转,不会发生两支路码元极性同时翻转的现象。因此,OQPSK信号相位只能跳变0°和±90°,不会出现180°的相位跳变,具有恒包络特性,受系统非线性影响小,所以频带受限的OQPSK信号包络起伏比频带受限的QPSK信号经限幅放大后频带展宽得少,故OQPSK性能优于QPSK。
常用的多相制信号的产生方法主要有直接调相法、脉冲插入法、相位选择法等。本设计采用相位选择法,即直接用数字信号选择所需相位的载波以产生多相制信号。OQPSK的方框图如图1所示。在这种调制器中,输入码元经串并转换后分为I、Q两路信号,两路共有00、01、10、11共四种状态。其中I路经过半码元周期的延迟后与Q路信号共同作为选相电路的输入。载波发生器产生四种相位的载波,逻辑选相电路根据输入信息每次选择其中一种相移的载波作为输出,然后经过带通滤波器滤除高频分量,得到调制好的信号。该方法更适合全数字调制在FPGA内的实现。
2 OQPSK数字调制器实现
DSP Builder是一个系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个设计领域的设计工具连接起来,都放在了MATLAB/Simulink图形设计平台上,而将QuartusⅡ作为底层设计工具置于后台,最大程度发挥了各种工具的优势。除了图形化的系统建模外,DSP Builder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载至FPGA开发板上。本设计完全基于FPGA实现,该调制器采用DSP Builder的图形化设计,通过Simulink的图形化界面进行建模、系统级仿真,并调用QuartusⅡ进行综合、网表生成和适配,最后完成向FPGA的配置下载过程。整个设计思路灵活,图形界面简单直观,硬件实现部分采用Altera 公司开发的Cyclone系列EP1C6Q240C8。系统模型由共分时钟、串并转换、四相制载波产生、相位选择等电路组成,如图2所示。该模型的系统级仿真结果如图3所示,I、Q对应为串并转换并延迟后的码元,输出为调制后的载波。
2.1 时钟、串/并转换、相位选择模块的实现[3]
时钟模块调用Simulink中的锁相环模型,对输入时钟进行分频与倍频。输出两路时钟信号,分别用作延迟时钟与载波信号产生模块的时钟。在串并转换中输入的信息码元经过串并转换器,变成速率减半的双比特序列。具体实现是采用计数器对输入时钟计数,计数输出作为D触发器的使能输入,通过使能信号控制输入码元在输出端的输出以实现对数据的串并转换。
在DDS模块中的相位调制精度设置为10, 所以相位选择器输入代码的宽度也相应设置成10位, 相应的相位调制输入值对应关系为: 相位输出Ф0=π/4 时相位控制字的输入值对应为128, 3π/4 时对应384为调制输入值, 5π/4 时对应640 为调制输入值, 7π/4时对应896为调制输入值,其计算公式如式(1)所示。相位选择模块采用四路复用器根据输入I、Q两路信号做选通信号,实现对相位控制字的选择。
2.2 载波发生器的实现
四相载波发生器采用直接数字合成器实现,它是采用数字技术的一种新型频率合成技术,通过控制频率、相位增量的步长,产生各种不同频率的信号。它具有一系列的优点:较高的频率分辨率;可以实现快速的频率切换;在频率改变时能够保持相位的连续;很容易实现频率、相位和幅度的数控调制等。
基于DSP Builder的子系统如图4所示,DDS子系统Subsystem有3个输入,分别为Freqword(32位控制字)、phaseword(10位相位控制字)、Amp(10 位控制字);1个输出,即10位OQPSK输出。2个累加器分别为相位累加器和相位调制器,LUT为正弦ROM查找表。频率控制字的计算公式如式(2)所示,在式中fclk是系统时钟,N是相位累加器的数据位宽,也是频率输入字的数据位宽。相位控制字接收相位选择其提供的输入数据。幅度控制字也可以根据输出幅度的需要进行设定,在仿真中幅度控制值设定为1。
2.3 OQPSK的FPGA实现[4]
通过Matlab/Simulink对已经设计好的OQPSK模型进行编译,再调用DSP Builder的Signal Compiler工具直接生成QuartusⅡ工程文件,再调用QuartusⅡ完成综合、网表生成和适配,直至完成FPGA的配置下载过程。
本设计方案采用的FPGA芯片是Altera公司的Cyclone系列芯片EP1C6Q240C8,其容量6000个逻辑宏单元(LE),等效于标准15万逻辑门电路,速度为-8,可通过单片芯片电路实现DDS,相位累加和相位调制器分别为32位和10位,正弦ROM查找表存储1 024×10 bit波形数据,利用FPGA可以根据需要方便地实现OQPSK全数字调制,且具有浪费的实时性。在转换后的源代码通过功能仿真与时序仿真测试后,再经过QuartusⅡ软件综合生成EDF格式的网表文件,得到的波形如图5所示。图中,clock为系统时钟, Fword为频率控制字,Datain为输入码元,Sel为串并转换后的两路码元信号,OQPSK为调制后输出信号。QuartusⅡ中的仿真结果与Matlab/Simulink中的仿真结果在相位,频率和幅度上基本一致。利用FPGA能输出较高质量的信号,虽然内部数字信号有一定的抖动,但通过采用抖动注入技术、延时叠加法等方法,通常也能将误差保持在允许范围之内。
通过Matlab对调制后数据进行频谱分析,分析结果如图6所示。由图可以看出,OQPSK信号具有恒包络特性,没有出现180°的相位跳变;对其做1 024点FFT,并进行谱运算,得到信号频谱,带宽为1.2 MHz,载波频率为2.8 MHz(采样频率为9.6 MHz),达到设计要求。
本文利用QuartusⅡ和Matlab/Simulink之间的接口工具DSP Builder来设计整个OQPSK系统,DSP Builder具备一个友好的开发环境,并且和QuartusⅡ交互性强,易于使用。设计者只需简单了解VHDL描述语言,就可以直接调用已经建立好的Matlab和Simulink设计流程,通过Simulink的图形化界面进行建模、系统级仿真,并子对调用QuartusⅡ进行综合、网表生成和适配,最后完成向FPGA的配置下载过程。整个设计思路灵活,图形界面简单直观,开发周期短。仿真结果表明,该设计方案原理正确,行之有效。根据Nyquist定律,只要输出信号的最高频率分量小于或等于fclk/2,就可以实现。而实际中由于受LPF设计及杂散分布的限制,仅能做到40%左右。所以采用DDS,可合成几乎从直流到0.4 fclk的频率。且在系统晶振频率一定的情况下,系统时钟可用FPGA内部的锁相环进行倍频、分频,以实现载波频率的任意调整。
参考文献
[1] 张学平,王应平,邹传云. 基于FPGA的OQPSK解调器的设计与实现[J]. 微计算机信息, 2005,23(1).
[2] 郭培源,李焕杰. 基于FPGA的QPSK调制设计与实现[J]. 北京:北京工商大学学报(自然科学版), 2004,24(03).
[3] 王亮兴,达新宇. 数字通信原理与技术. 西安:西安电子科技大学出版社,2003.
[4] 潘松,黄继业. EDA技术与VHDL. 北京:清华大学出版社,2007.流程,通过Simulink的图形化界面进行建模、系统级仿真,并子对调用QuartusⅡ进行综合、网表生成和适配,最后完