QAM调制系统的FPGA设计与仿真

2022-11-09

随着现代化步伐的加快, 社会信息化的普及, 移动用户数量也不断的增加, 传统的通信系统已经不能够满足通信的要求。在可用频带资源非常有限的情况下, 不能够靠无限增加频道数目来解决系统的容量问题。那么寻找频谱利用率高的数字调制方式已成为数字通信系统设计、研究的主要目标之一[1~2]。QAM正是一种频谱利用率较高的调制方式。文中提出了用AHDL语言实现全数字正交幅度调制16QAM调制器的思想和方法, 作为全数字调制系统的实现, 具有其可行性和先进性。根据QAM系统全数字实现的特点, 提出一种高效的QAM实现方法, 使其实现更为简单。

1 QAM调制系统的总体设计方案

QAM调制系统的实现方法有很多, 有四相叠加法、正交调制法等等。文中的设计方案是由正交调制法变换演变而来的。

采用晶振作为基准时钟信号, 经过分频后, 作为伪随机序列信号源的时钟。伪随机序列经过一次数据分离后, 产生I路和Q路两路信号, 再分别对两路基带信号进行数据分离, 使之变成四路同时序的基带信号。根据数据表的编码和信号点映射关系, 利用数据选择器选通两路输出, 该输出与数控器及查找表相连, 因此数控器及查找表的输出已经实现了I路和Q路的调制。再将两路调制信号叠加, 得到QAM调制信号。然后, 再经过一个D/A转换器, 把数字调制信号变成模拟信号进行输出。图1是16QAM调制系统的总体设计框图 (见图1) 。

2 模块整体设计

16QAM调制器主要由以下几部分组成:时钟、信号源、数据分离器、数据选择器、数控器及查找表、叠加器、D/A转换器等, 我们采用自顶向下的设计方法, 其顶层设计图如图2所示。其中, CNT_CLK为时钟输入, 74393实现32分频, 提供系统时钟, M_GENERAToR为m序列发生器产生信号源, DIV_CLK_2为2分频器, fenli为数据分离器, lock、d为锁存器, 数控器及查找表叠加器等都在compose模块中实现 (见图2) 。

2.1 时钟模块

时钟是数字电路中必不可少的部分。设计中采用20M的时钟作为基本时钟信号通过计数器74393进32分频后送给伪随机序列发生器, 因此基带信号的数据速率为64Kbps。同时, 2M时钟通过图中DIV_CLK_2模块实现2分频后, 提供对基带信号进行抽样的采样时钟即提供compose模块的时钟;64K的时钟通过图中的DIV_CLK_2模块2分频后, 为数据分离器fenli提供时钟。本设计中的74393模块调用QuartusII中提供的74393模块。

2.2 信号源模块

信号源由伪随机序列产生, 采用最长线性反馈m序列作为信号源。其中短码采用4阶m序列, 生成多项式为x4+x+1;长码采用23阶m序列, 生成多项式为x23+x5+1, 用AHDL语言设计。

2.3 数据分离器模块

当电路输入m序列后, 根据l6-QAM调制原理, 数据被分离成正交的两路:I路和Q路。因此数据的周期增加一倍, 两路的数据都进行了2分频。数据分离器主要是由D触发器构成, 具体线路设计如图3所示。系统时钟信号CLK经过一个2分频器, 用这个信号把数据的奇数位取出, 同时经过一个D触发器延时周期后把数据中的偶数位取出。由于奇数位和偶数位为近似归零码, 然而需要的是非归零码, 因此使数据经过D触发器延时后与原数据相或得到非归零码的两路数据 (见图3) 。

由于数据分离后I路和Q路的时序是不同的, 所以需要在I路和Q路的数据输出端各加一个数据锁存器使两路输出数据同步。数据锁存器是由两个D触发器在系统时钟的2分频时钟的触发下工作的。后面所采用的两个数据分离器与I路和Q路的数据分离器是相同的, 不同的是锁存器是在系统时钟的4分频时钟的触发下工作的。

2.4 数据选择器

根据16QAM调制原理, 数据选择器用来实现输入数据和输出波形的对应关系, 其对应关系如表1所示。因此, 数据选择器有4个控制端, 输出为16个相对应的波形之一, 用AHDL语言进行设计。

2.5 数控器及查找表模块

设计中, 每个数据符号周期有4个载波, 每个载波采样16个点, 采样速率为1MHz。数控器及查找表包括一个l6进制的计数器和8个正弦或余弦表, 用AHDL语言设计。当然, 在具体实现时, 必须事先计算出与8个正弦或余弦相对应的16个采样点的值, 并根据所选用的D/A转换器中的编码规则, 将采样点的值进行二进制双极性编码。我们选用D/A转换器为TEL7524, 输出为8bit。

在此模块中, cnt_4是一个16进制计数器, 4xuan1为一个四选一开关, 用于选择后面的正余弦表, cos、cos1、cos2cos3、sin、sin1、sin2、sin3是上面所介绍的8个正弦余弦模块。I和Q两路信号经过16进制计数器后通过四选一开关, 进入正余弦表, 基本完成了I支路和Q支路的调制工作, 输出8路调制信号。

2.6 叠加模块

16QAM调制信号是由I路和Q路信号相加合成的, 因为每一路输出为8bit (由D/A转换器的输入位数决定) , 所以当两路信号相加时, 可能会产生溢出的情况, 又由于两路信号都是带符号的数, 因此又要考虑符号位。例如:-1.148+ (-2.772) =-3.92, 其中-1.148的二进制编码为01100011, -2.772的二进制编码为00111001, -3.92的二进制编码为00011100。而01100011+00111001=10011100。

2.7 D/A转换器

D/A转换器本文选用8位TLC7524, 因为基带信号的传输速率为64Kbps, 载波为256KHz, 用TLC7524作为本设计的D/A转换器能够满足本设计的性能要求。TLC7524是8位乘法型DAC, 具有输入锁存以及随即存储存取器写周期相似的装载周期。分段高阶位可使最高有效位变化期间内的闪变为最小, 该变化会产生最高闪变脉冲。该器件可提供1/2LSB的精度而无需薄膜电阻或激光微调, 采用5V~15V单电源工作, 其功耗典型值小于5mW[5]。

3 QAM调制系统的仿真分析

根据图2的顶层设计图, 分别对各模块进行AHDL语言编程、编译、综合, 取时钟周期50ns, 最后得到如图4所示的16QAM调制仿真波形图 (见图4) 。

从仿真波形图中可以看出, 在时钟信号 (周期为50ns) CNT_CLK的作用下, 通过计数器74393进32分频, 图中mout1为32分频后的时钟信号, 然后送给伪随机序列发生器, 产生1个m序列 (mout) (01100110010110) , 途中mout是m序列信号, m序列作为基带信号经过16QAM调制, 从输出端Q[7..0]输出16QAM调制后的数字信号, 可达到0.5Mbps的信息速率。值得注意的是仿真时信号m必须从第32个时钟开始取低电平, 这是由于程序中使用了74393进行了32分频。在仿真过程中会有一定的时钟周期延时, 但不影响最终的结果。经过计算分析, 仿真结果与实际理论计算结果一致。

4 结语

文中设计的16QAM系统采用对正交调制法进行相应的变换而来的调制方法, 它是用两路正交的四电平振幅键控信号叠加而形成16QAM的调制信号。应用AHDL硬件设计语言在QuartusⅡ6.0软件中进行设计、综合、代码编写与仿真, 并得到仿真结果。通过对仿真的分析, 和相应理论的计算结果相比较, 验证本设计是正确的, 通过试验总结得到本设计适合的时钟频率为20MHZ, 得到较为满意的波形。本文运用AHDL语言仿真数字16QAM调制, 同时在FPGA芯片上实现, 具有可编程性、实现方案容易修改、便于调试、集成度高、可靠性好和易于开发等许多优点。

摘要:提出了基于FPGA的QAM调制系统的设计方案。设计了调制系统的各个子模块并进行了分析, 利用QuartusⅡ软件进行了仿真实现并与理论值进行了比较, 验证了系统的可行性。

关键词:QAM调制,FPGA,QuartusⅡ

参考文献

[1] 于风云, 张平.QAM调制与解调的全数字实现[J].现代电子技术, 2005 (3) :53~55.

[2] 樊昌信, 詹道雍, 徐炳祥, 等.通信原理 (第6版) [M].北京:国防工业出版社, 2005.

[3] John R.Treichler, Michael G Larimore and Jeff rey C.Harp, Practical Blind Demodulators for High-Order QAM Signals[C].IEEE Proceedings on Signal Processing, 2004, 86 (10) :1907~1926.

[4] 陶为戈, 张娟, 朱昳华.基于FPGA的QAM调制器的设计[J].江苏技术师范学院学报, 2007, 13 (2) :35~39.

[5] 王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社, 2007.

上一篇:基于新常态下企业财务管理创新动因、初始条件与策略下一篇:体育俱乐部型高校体育管理模式探讨