基于FPGA的16QAM调制解调(共23页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于FPGA的16QAM调制解调(共23页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的16QAM调制解调(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于FPGA的16QAM调制解调器的实现 组员:目录摘要QAM(Quadrature Amplitude Modulation)是一种新的调制技术,它在调制过程中利用了相位和幅度两维空间资源,比只利用单一维度空间资源的PSK和ASK调制方式频谱利用率高,不仅如此,QAM的星座点比PSK的星座点更分散,星座点之间的距离因此更大,所以能提供更好的传输性能。随着第三代移动通信的兴起,传输容量增大,多进制正交幅度调制MQAM (Multiple Quadrature Amplitude Modulation)将得到更加广泛的运用。本文主要研究了基于FPGA的16QAM调制与解
2、调的实现。首先说明了QAM调制和解调的原理,然后对各系统组成模块分析与仿真之后提出基于FPGA的16QAM调制与解调的总体设计方案。最后用Verilog语言编写程序完成了整个系统的仿真,并对编好的程序其进行了编译调试。文中详细介绍了载波恢复、正交相干解调、FIR低通滤波器和采样判决的基本原理和设计方法。关键词:正交相干解调,混频,FPGA,QAM 一、QAM调制原理正交幅度调制(QAM)是一种把数字信息包含在载波的振幅和相位中的数字调制方式,也是ASK和PSK的结合。式(1)表示了QAM信号,它还可用式(2)来表示在QAM中是如何结合幅度和相位调制的。 (1) (2)16QAM信号的产生有两种
3、基本方法:正交调幅法是用两路正交的四电平振幅键控信号叠加而成;四相叠加法是用两路独立的四相移相键控信号叠加而成。其中,16QAM正交调幅法的调制方框图如图1所示。输入的二进制数据经过串一并变换分别进入a1、a2、b1和b2,4个信道:每个信道的数据速率降为原来的14。24电平转换器产生一个四电平的PAM信号,每个24电平转换器的输出有2种量值和2种相位。两个PAM信号分别调制同相和正交载波,每一个调制器有4种可能的输出,经线性加法器合并产生16QAM信号。 图1 16QAM调制原理图每路PAM信号的量值和相位由输入的二进制数据及其比特分配模式星座图决定。16QAM星座图通常有自然码逻辑和Gra
4、y码逻辑2种比特模式。因为Gray码可以消除相邻点间符号差错中的2比特误差,即可减小相同符号差错率中的误比特率,IEEE8021la和HiperLAN2标准中所有的星座都是Gray码的。本文在设计16QAM的时候,采用图2的Gray模式进行编码,图中4个比特位从左至右的顺序为blb2ala2。图2 16QAM星座图的Gray码逻辑模式二、QAM的解调原理解调实质上是调制的逆过程,在理想情况下,MQAM信号的频带利用率为,目前,对QAM信号的解调方法很多,其主要方法有以下三种:模拟相干解调、数字相干解调、全数字解调4。本文采用数字相干解调法对QAM进行解调,原理如图2.1.3所示:串并转换多电平
5、转换LPF采样判决载波恢复LPF多电平转换采样判决QAM信号图2.1.3 QAM解调器框图在接收端接收到的调制信号分别和两路相互正交的载波信号相乘,化简之后相同信号的表达式为: (2-6)正交信号表达式为: (2-7)其中,经过解调得到同相与正交两路相互独立的多电平基带信号,然后把多电平基带信号经过低通滤波器滤去高频载波之后得到直流分量为和,再进行采样判决、L-2值电平转换和并/串转换还原出基带信号。此处时为16QAM相干解调。三、16QAM调制器的实现系统输入数据速率为100 Kbs;系统正交调制载波频率为1 MHz。调制部分主要由Ahera公司推出的Cyclone系列器件EPlC6Q240
6、C8实现该器件完成对输入数据串并变换、差分编码、星座影射等。设计EDA工具为Ahera集成设计软件Quartus II 72版本;硬件描述Verilog HDL语言完成逻辑设计。本系统还用到仿真工具Matlab,搭建16QAM调制器的simulink模块,采用示波器观看波形。 1 系统总体框图 16QAM调制器的实现主要包括时钟模块、串并变换模块、查分编码模块、星座映射、DDS模块、加法器模块。系统总体框图如下: 图3 系统总体框图系统顶层设计如下:图4 系统顶层设计2 时钟分频时钟分频模块clk利用N对10MHz系统时钟信号进行N分频,以产生调制器模块所需的工作时钟。N分频器是由模N2实现的
7、,分频输出信号模N2可自动取反,以产生占空比为1:1的时钟信号。由于产生的基带信号为1bit串行数据,其速率为100 kbps,经并串转换后的4 bit并行数据速率为400 kbps,所以,本设计还采用了100分频器和400分频器。另外将10Mhz直接送入到DDS模块,使得输出的载波频率为1Mhz.3 串并转换 1bit的数据送过来后,通过串并变换,将输入的第一个数据同它后面的三个数据同时输出,形成4bit的并行信号。4 差分编码和星座映射 在本模块,同样根据调制方式不同,选用不同位的数据来进行处理。由于几乎都采用相干检测的方式进行解调,因此在解调端载波恢复存在着4个相位稳定点,即提取的相干载
8、波可能与接收信号载波有4种相位关系,称作4重相位模糊度旧3。部分差分编码能消除4重相位模糊度对解调的影响。而部分差分编码相对于全差分编码由于减少了差分编码的bit数。因而减少了误码扩散,具有较好的误码性能。 由于同样的符号误码率下,采用格雷编码比自然码的比特误码率小,所以多幅度电平的电平逻辑采用格雷编码映射。星座影射模块输入4bit并行数据,输出为IQ路对应的四幅值之一;4 bit并行信号需要将其影射到信号平面,星座影射实现采用查表法分别输出I/Q对应的幅值.对应的量化表如下:表1 星座映射I/Q路输入数据对应的量化值00-201-11111025 DDS和线性加法器 在DDS模块中,采用系统
9、时钟10Mhz,由公式可知:但取频率字为K=32b, fc=10MHZ, N=32时,可得到输出的正余弦波的频率为1MHz。四、QAM解调模块设计由于接收到的16QAM信号经混频之后的信号为基带信号和2倍载波频率的高频分量之和,因此混频后的信号需经过低通滤波,采样判决和电平转换把基带信号还原出来。因此解调模块分为三个子模块:低通滤波器、采样判决器和电平转换器。1 低通滤波器模块设计由于系统只要求将高频分量滤除,这里采用相对简单而易实现的FIR低通滤波器。FIR滤波器由有限个采样值组成,在每个采样时刻完成有限个卷积运算,可以将其幅度特性设计成多种多样,同时还可以保证精确、严格的相位特性。在高阶滤
10、波器中,还可以通过FFT来计算卷积,从而极大提高运算效率。这些优点使得FIR滤波器得到广泛应用9。FIR滤波器只存在个抽头,也被称为滤波器的阶数,则滤波器的输出可以通过卷积的形式表示为: (3-5)FIR滤波器实现的基本方法是用一个有限级数的傅里叶变换去逼近所要求的滤波器响应,基本设计方法可以分为窗口法和频率采样法两种。本次设计选用窗口法设计FIR滤波器,其设计步骤如下:确定数字滤波器的性能要求:截止频率,滤波器单位脉冲响应长度。根据性能要求,合理选择单位脉冲响应的奇偶对称性,从而确定理想频率响应的幅频特性和相频特性。得到单位脉冲响应后,在实际计算中,可对按(远大于)点等距离采样,并对其求ID
11、FT得,用代替。选择适当的窗函数,根据求所需设计的FIR滤波器单位脉冲响应。求,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度,重复上述设计过程,以得到满意结果。其中,选取的窗函数为布莱克曼窗: (3-6)由于整个设计中,基带信号频率不超过200Hz,载波频率5MHz,因此设置滤波器截止频率,阶数,采样频率为FPGA时钟频率50M,采用Quartus II软件的IP core进行设计。2 采样判决模块设计采样判决模块采用的是门限的思路设计,即当输入电平的二进制数值处于某门限范围之内时,将此电平值判断为此门限范围内的某一特定值。由于16QAM的I、Q两路中任意一路都载有4种电平值,因此
12、设计三个电平门限值,将8位总线数值区间分成4等份,然后将时钟信号进行分频,每间隔特定时间段就对输入信号进行采样和判决。流程图如图3.2.1。Y电平值1电平值2电平值3电平值4NNNYYN门限区间1门限区间2门限区间3采样取值图3.2.1 采样判决设计流程图五、16QAM调制器的仿真结果1 使用Quartus 自带仿真器仿真,其总体仿真图如下:图5 16QAM调制器的quartus仿真2将程序导入到modelsim中,通过编写testbench,得到如下仿真结果:图6 16QAM调制器的modeldsim仿真3 使用MATLAB中simulink库文件搭建一个16QAM调制系统:图7 16QAM
13、调制系统在MATLAB中的仿真实现 观察最后的两个示波器,首先是没有加入噪声的波形,显示如下图8 没有噪声的输出波形让输出信号通过10dB噪声的AWGN 信道后,输出波形如下:图9 通过AWGN信道后的输出波形同时会得到映射在星座图上的点,图形如下:图10 星座映射图4 对输出的数据进行频谱分析 通过在testbench中编写程序,保存输出的数据,再用MATLAB进行频谱分析,得到结果如下:图11 输出信号的频谱分析四、附录1 顶层模块 module top(clk, /系统时钟rst, /复位en, /使能信号data_in, /1bit信号输入data_out, /16QAM信号输出DAT
14、A_I, /I路对应的量化值DATA_Q); /Q路对应的量化值 input clk,rst,en; input data_in; output signed17:0 data_out; output signed 3:0 DATA_I,DATA_Q; wire clk_dds; /DDS块的输入时钟 wire clk_100; /100kbs wire clk_400; /25kbs wire 3:0 data1; wire 3:0 data2; clk clkqam( .clk_sys(clk), .rst(rst), .clk_dds(clk_dds), .clk_100(clk_100
15、), .clk_400(clk_400) );shift shiftqam( .clk_in(clk_100), .clk_out(clk_dds), .data_in(data_in), .rst(rst), .en(en), .data_out(data1) );diff diffqam( .clk(clk_dds), .rst(rst), .data_in(data1), .data_out_i(DATA_I), .data_out_q(DATA_Q), .data(data2) );add addqam ( .clk_dds(clk_dds), .rst(rst), .en(en),
16、.data(data2), .dataout(data_out) );endmodulemodule clk( clk_sys, /10MHz rst, clk_dds, /10MHz clk_400, / 25Kbs clk_100); /100Kbs input clk_sys; input rst; output clk_dds,clk_400,clk_100; reg clk_400,clk_10,clk_100; reg 7:0 count2,count3,count4; assign clk_dds=clk_sys;always (posedge clk_sys or posedg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 16 QAM 调制 解调 23
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内