基于FPGA的QDPSK 调制解调系统设计

时间:2022-10-15 01:47:21

基于FPGA的QDPSK 调制解调系统设计

摘要:该文根据QDPSK调制解调系统基本工作原理,在QuartusⅡ下分别对组成系统所需的信号发生、串/并转换、差分编码、调制、解调、差分解码和并/串转模块进行分模块设计,并在此基础上进行QDPSK系统的拼装、仿真与设计。将QuartusⅡ下得到的仿真程序下载到FPGA芯片上,用示波器测试系统输入输出波形,测试结果表明设计的QDPSK调制解调系统能正确工作。

关键词: 四相差分相位键控;QuartusⅡ;FPGA;调制解调系统

中图分类号:TN911 文献标识码:A 文章编号:1009-3044(2012)28-6662-04

QDPSK是四进制差分移相键控技术,具有频谱利用率高、抗干扰能力强的特点,在移动通信、卫星通信中得到了广泛应用,本文在QuartusⅡ环境下对QDPSK系统进行了设计仿真。

1 系统总体设计方案

本设计采用的QDPSK调制解调方案为:采用选相法进行调制,采用波形译码进行解调。

系统整体设计原理框图如图1所示[1-2]。

调制时首先将得到的基带原始码序列x经过串并转换得到绝对码[AKBK],再对其进行差分编码,得到相对码[akbk]。用所得的相对码去调制载波,就得到了已调信号。解调时:根据调制的载波信号翻译出相对码组。相对码经过差分反变换,得到绝对码。将所得到的绝对码经过并/串转换,就可恢复出原始信号x。

2 在QuartusⅡ下QDPSK调制解调系统各模块设计

2.1 信号发生模块设计

该模块产生一串数字序列作为系统基带码。通常可采用M序列发生器或PN码发生器。此次设计采用直接赋值的方法,即在给定频率clk4下,计数器每计一次,给定一个值,此值作为一个码元输出。计数器总共计16次,计够次数后进行循环,产生有16个码元的循环序列。

在QuartusⅡ下进行信号发生模块的设计仿真,得到其封装图如图2所示,时序仿真图如图3所示。

2.2 串/并转换模块设计

根据串/并转换原理,该模块程序设计流程如图4所示。同时输入串行序列X和clk8。先对clk8进行判定,当其为高电平时,就将此时刻所对应的X赋给a,若为低电平,就将对应的X赋给b。根据流程图编写串/并转换模块程序,并在QuartusⅡ环境下编译,通过后对其进行封装,得到该模块封装图如图5所示[3]。

将信号发生模块和串/并转换模块进行连接。其中信号发生模块所用时钟为clk4,其输出信号x作为串/并转换模块的输入。串/并转换模块采用时钟clk8,并将输入端信号x转换为两路并行信号A和B。其时序仿真如图6所示。

2.3 系统分频电路

该系统中采用三个时钟以保证信号同步:clk2、clk4、clk8,可利用D触发器和非门组成逻辑电路进行时钟分频[4]。将clk接入D触发器时钟输入端,其输出经过一个非门再反接回触发器D输入端,此时经过非门的输出信号就是clk的二分频clk2;同理可得到clk4和clk8。分频电路图如2.4 并/串转换模块设计

并/串模块原理图如图9所示:并/串转换是将反码变换后的双比特码元恢复成基带序列。选用周期为码元宽度1/2的时钟(码元宽度为一个clk8周期,故此时所选时钟为clk4);定义一个计数次数为2的计数器q,当q计‘0’时,提取a路信号并进行存储;当q计‘1’时提取b路信号并进行存储。时钟周期为码元宽度的1/2,故当在第二个时钟周期内(q=‘1’)所提取的b路信号仍然是与a路同时刻的信号。根据图9所示原理进行并/串转换程序设计,并在QuartusⅡ环境下进行编译、封装得到该模块封装图如图10所示。

给出a、b两路信号,码元宽度均为时钟周期的2倍,a路信号为00110011,b路为101010。将使能端“enable”置为1,对程序进行结果仿真,仿真时序如图11所示。

2.5 差分编码模块设计

进行软件仿真时,在QuartusⅡ环境下,先进行模二加电路、一码元延迟电路和交叉直流电路三个部分的程序编译。程序编译通过后将各个电路封装。在图形编辑器中连接模二加电路、一码元延迟电路和交叉直流电路。其顶层模块如图12所示[4]。

将图12所示电路编译后对其结果进行仿真。仿真结果如图13所示。

2.6码反变换模块设计

码反变换模块电路图如图13所示:两路信号c和d经过xor模块异或后将其得出的结果[ak]经过EX3延迟一个码元宽度后成为[ak-1],再将其送入EX1的A1端口,同时信号c和d经过xor模块异或后将其得出的另一个结果[bk-1]也经过EX3延迟一个码元宽度,再送入EX1的B1端口。aor模块将cd进行同或,得出的结果送入EX1模块的Z端口。EX1根据z的值判定:当z为0时,就将A1端口输入的[ak-1]赋给C1,同时将B1端口输入的[bk-1]赋给D1。此时c1端口输出的值就是[ak-1],D1端口的值为[bk-1]。再将[ak-1]反送到xor模块的A端口,[bk-1]反送到xor模块的B端口。则[ak-1]与B端口输入的值(此时为[ak])进行异或即可得到绝相对码[AK],[bk-1]与B端口输入的值(此时为[bk])进行异或即可得到绝相对码[BK]。当Z为1时,EX1就将A1端口输入的[ak-1]赋给D1,将B1端口输入的[bk-1]赋给C1,此时C1端口输出的值就是[bk-1],D1端口的值为[ak-1]。再将[bk-1]反送到xor模块的B端口,[ak-1]反送到xor模块的A端口。则[bk-1]与A端口输入的值(此时为[ak])进行异或即可得到绝对码[AK],[ak-1]与B端口输入的值(此时为[bk])进行异或即可得到绝对码[BK][5]。

将图14所示电路编译后对其结果进行仿真,得到码反变换时序仿真如图15所示。

3 QuartusⅡ下QDPSK调制解调系统总体设计及仿真

3.1 QuartusⅡ下QDPSK调制解调系统总图连接

QuartusⅡ下系统总图如图16所示:各模块编译通过后,在原路图编辑器中进行总图连接。

3.2 QDPSK调制解调系统时序仿真

在QuartusⅡ环境下,在波形编辑器中新建波形文件对系统总电路进行结果仿真。其仿真时序如图17所示。图上可以读出A0为01011011110011110.B0为0101010001010100010.通过图上比较发现,A0序列与A序列相同,同时B0序列与B序列相同。这是因为A和B序列经过差分编码、调制,再解调、差分解码,这样就将其恢复出来了,但从图17上看,恢复出的A0和B0有一定的延迟。

4 系统测试与分析

对总图进行仿真后,将其下载在FPGA芯片上,用示波器测试系统输入输出点,如图18所示:第一行波形为输入数据波形data,第二行波形为通过过所设计的QDPSK系统后输出的波形out;out输出波形相对data波形经过6个码元周期的延迟后完全相同,说明所设计的系统对信号经过QDPSK调制解调后能够恢复原信号。

5 结束语

本次设计根据QDPSK调制解调系统基本原理在QuartusⅡ下进行系统的设计,首先对系统设计所需的各模块进行设计及仿真。在得到正确仿真结果后将各模块在原理图编辑器中进行拼装,构成系统总图。对总图进行仿真后,将其下载在FPGA芯片上,用示波器测试输入输出管脚。示波器所测结果显示,输出波形相对输入波形经过6个码元周期的延迟后完全相同,说明设计的系统能正确工作。

参考文献:

[1] 樊昌信.通信原理[M].北京:国防工业出版社,2001.

[2] 喻应芝.QDPSK调制解调的FPGA实现[D].北京:北京理工大学,2002

[3] 冯璐.QDPSK信号的数字化生成及解调方法研究[D].长沙:中南大学,2007.

[4] 李红岩,赵艳杰,张丽娜.基于CPLD 的QDPSK 数字调制码变换器的设计[J].内蒙大学学报:自然科学版,2010,41(3):351-355.

[5] 潘松,黄继业.EDA技术实用技术[M].北京:科学出版社,2005.

上一篇:高寒冷凉山区水稻优质高产栽培技术 下一篇:测土配方施肥在油菜生产中的应用效果研究