基于FPGA的MSK调制器设计与实现.doc

上传人:b****1 文档编号:148867 上传时间:2022-10-04 格式:DOC 页数:7 大小:147KB
下载 相关 举报
基于FPGA的MSK调制器设计与实现.doc_第1页
第1页 / 共7页
基于FPGA的MSK调制器设计与实现.doc_第2页
第2页 / 共7页
基于FPGA的MSK调制器设计与实现.doc_第3页
第3页 / 共7页
基于FPGA的MSK调制器设计与实现.doc_第4页
第4页 / 共7页
基于FPGA的MSK调制器设计与实现.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

基于FPGA的MSK调制器设计与实现.doc

《基于FPGA的MSK调制器设计与实现.doc》由会员分享,可在线阅读,更多相关《基于FPGA的MSK调制器设计与实现.doc(7页珍藏版)》请在冰豆网上搜索。

基于FPGA的MSK调制器设计与实现.doc

基于FPGA的MSK调制器设计与实现

谢丽君1谭立志2

(1.长沙职业技术学院湖南长沙410003;2.株洲职业技术学院湖南株洲412001)

摘要:

介绍了MSK信号的优点,并分析了其实现原理,提出一种MSK高性能数字调制器的FPGA实现方案;采用自顶向下的设计思想,将系统分成串/并变换器、差分编码器、数控振荡器、移相器、乘法电路和加法电路等六大模块,重点论述了串/并变换、差分编码、数控振荡器的实现,用原理图输入、VHDL语言设计相结合的多种设计方法,分别实现了各模块的具体设计,并给出了其在QuartusII环境下的仿真结果。

结果表明,基于FPGA的MSK调制器,设计简单,便于修改和调试,性能稳定。

关键词:

MSK,FPGA,差分编码器,数控振荡器

中图分类号:

TP29文献标志码:

A文章编号:

DesignandRealizationofMSKModulationBasedonFPGATechnique

XIELijun1TANLizhi2

(1.ChangshaProfessionalTechnologycollege,Changsha,410003,china;2.ZhuzhouProfessionalTechnologycollege,zhuzhou,412001,china;)

Abstract:

ThisarticleintroducedtheadvantageofMSK,andanalyzedtheimplementationprinciple.theproposedahigh-preformanceMSKdigitalmodulator’simplementationmethodbasedonFPGA;Thesystemisdiviedintoserial/parallelconversion、differentialencoding、NCO、phaseshifter、multiplicationcircuitandadderusingTop-to-Downdesign;AndachievedthespecificdesignofeachmodulebyschematicandVHDL;ThesimulationandexperimentofFPGAdesignweregivenwithQuartusII.Resultshows,theMSKmodulatorbasedonFPGA,simpleindesign,convenienttomodifyordebug,anditoperatesstable.

Keywords:

MSK,FPGA,DifferentialEncoding.NCO

0引言

在QPSK调制技术中,假定每个符号的包络都是矩形,已调信号的包络是恒定的,此时无论基带信号还是已调信号其频谱都是无限的。

但是实际的信道总是有一定的带宽的,因此在发送QPSK信号时通常要通过带通滤波器进行限带。

限带后的信号已经不能再保持包络恒定,相邻符号间发生相移时,限带后包络会明显变小,甚至出现包络为0的现象。

这种现象在非线性信道中是不希望出现的,虽然经过非线性放大器能够减弱包络起伏,但是这样却使信号的频谱扩展,其旁瓣会干扰邻近频道的信号,造成限带时的带通滤波器失去作用。

正是为了解决这个问题,我们引入了在非线性限带信道中使用的恒包络调制方法———最小移频键控(MSK)调制技术。

[1]

1实现原理[2]

MSK就是一种能产生恒定包络、连续相位信号的调制方式。

它是二进制连续相位移频键控(CPFSK)的一种特殊情况,即调制指数(移频系数)h=0.5,相位在码元转换时刻是连续的。

MSK信号可表示为:

(1)其中:

(2)

式中,为附加相位函数,假设初始相位为;为载波角频率;为码元间隔;为频偏;为第k个码元中的相位常数;为第k个码元数据;取值为±1。

这表明,MSK信号的相位是分段线性变化的,同时在码元转换时刻相位仍是连续的,所以有:

(3)或者:

(4)

由式

(1)和(4)可得:

(5)

由式(5)和MSK相位网格图可看出,为截矩,其值为π的整数倍,利用三角等式并注意到,有(6)根据以上分析,可以得出MSK调制器的框图如图1所示。

图1MSK调制器方框图

Fig.1TheMSKprinciple

2主要模块的FPGA实现

2.1串/并转换的实现

顺序输入的二进制信息经过串/并变换器,变换成速率减半的双比特序列,可采用两个D触发器来实现,其原理如图2所示。

其中DFFinst和DFFinst3构成一个两位移位寄存器,将串行输入信号变成并行输出信号;DFFinst4和NOTinst8构成二分频器,实现速率减半;DFFinst1和DFFinst2为锁存器,使信号同步输出。

图5为串/并变换器S_P的仿真结果,其中AB为变换后的双比特码元。

由图可以看出,当输入DataAB为01010101时,在延时约80ns后,输出DataA为0000,DataB为1111。

[3]

        

图 2 串/并转换原理图

Fig.2Theseries-parallelconversionprinciple

图 3 串/并转换仿真波形图

Fig.3Thesimulationdiagramofseries-parallelconversion

2.2差分编码器的实现[4]

差分编码器的功能就是实现绝对码变换为相对码,在相码中,1、0分别用相邻码元电平是否发生跳变来表示。

若用相邻电平发生跳变来表示码元1,则称为传号差分码,记做NRZ码。

绝对码-相对码之间的关系为:

(7)。

采用VHDL设计的主体代码如下[5]:

process(clk,datain_a,datain_b)

begin

ifclk'eventandclk='1'then

ifstart='0'thenq<=0;a<='0';b<='0';

elsifq<=0thenq<=1;a<=axordatain_a;dataout_a<=axordatain_a;

b<=bxordatain_b;dataout_b<=bxordatain_b;

elsifq=3thenq<=0;

elseq<=q+1;

endif;

endif;

endprocess;

endbehav;

经编译后生成元件,其波形仿真图如图4所示,由图可以得到:

当start为低电平时,两路输出信号都为0;当start信号为高电平时,对输入信号(datain_a)有:

datain_a=011111111001,此时dataout_a=010101010001,对输入信号(datain_b)有:

datain_b=011110111101,此时Dataout_b=010100101001,由此可以得出,元件QDSP_PL实现了由绝对码到相对码的变换。

图4绝对码到相对码变换仿真图

Fig.4Thesimulationdiagramofabsolutecodechangetorelative

2.3NCO的实现

2.3.1NCO的实现原理

数控振荡器在数字中频中相对来说是比较复杂的,也是决定数字中频性能的主要因素之一,NCO的目标是产生一个理想的正弦波或余弦波,如式

(1):

(n=0,1,2……)(8)

式中,为本地振荡频率;为输入信号的采样频率。

正弦波样本可以用实时计算的方法产生,但这只适用于信号采样频率很低的情况。

在超高速的信号采样频率的情况下,NCO实时计算的方法是不可能实现的,此时,NCO产生正弦波样本的最有效、最简便的方法就是查表法,即事先根据不同正弦波相位计算好相应的正弦值,并按相位角度作为地址存储相应的正弦值数据,工作时,在每输入一个信号采样样本时,NCO就增加一个的相位增量,然后,按照相位累加角度作为地址,取出该地址上的数值并输出到数字混频器,与信号样本相乘,其原理框图如图5所示[6]。

通过改变频率控制字,可以改变相位累加器的累加值,从而改变寻址的步进,实现不同的频率输出。

图5NCO原理框图

Fig5.NCOprinciplediagram

2.3.2相位累加器的FPGA实现[6]

相位累加器由N位加法器与N位寄存器级联构成。

每来一个时钟fc,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。

相位累加器输出的数据就是合成信号的相位,当相位累加器累加到最大值时会产生一次溢出,完成一个周期的动作。

溢出频率就是NCO输出的信号频率。

可用VHDL语言实现相位累加器的设计,其主要代码如下:

architectureartofsum88is

signaltemp:

std_logic_vector(7downto0);

begin

process(clk,en,reset)is

begin

ifreset='1'then

temp<="00000000";

else

ifclk'eventandclk='1'then

ifen='1'then

temp<=temp+k;

endif;

endif;

endif;

out1<=temp;

endprocess;

endart;

8位相位累加器的仿真波形如图6所示。

由波形图可以看出,当k=08时,在每一个有效脉冲的作用下,输出的数值比前一个输出的数值大8;当k=09时,输出的数值比前一个输出的数值大9;结果证明,该程序实现了相位的累加。

图68位相位累加器的仿真波形如图

Fig·6 Thediagramshowingthestimulatedwaveof8bitPhase-Accumulator

2.3.3正弦ROM表的FPGA实现

用相位累加器输出的数据作为波形存储器的取样地址,完成相位序列(相位码)向幅度序列(幅度码)的转换。

这里用ROM构造一个查找表。

N位的寻址ROM相当于把一个周期的正弦波形信号离散成具有2N个幅值的序列,若波形ROM有D位数据位,则2N个幅值以D位二进制数值固化在FPGA的ROM中,按照给定地址的不同可以输出相应相位的正弦信号的幅度编码。

本文ROM表采用64个采样点。

其波形仿真如图室7所示,从图中可以看出,地址位从00H变化到20H时,输出信号值从FFH变到00H,正好为正弦波的四分之一个周期,结果证明:

通过查询该ROM表,可以生成不同

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1