当前位置:首页 > 基于FPGA的16QAM调制解调电路设计
重庆邮电大学本科毕业设计(论文)
??g[(Amc?Anc)2?(Ams?Ans)2]/2 (2.5)
m?1?M)d,m?1,2,...,M时,两点间欧氏距离最小,为:当信号幅值取{(2d(e)min?d2?g。
第二节 16QAM解调方法和原理
解调实质上是调制的逆过程,在理想情况下,16QAM信号的频带利用率为log2M(b/s/Hz),目前,对QAM信号的解调方法很多,其主要方法有以下三种:模拟相干解调、数字相干解调、全数字解调。
本文采用数字相干解调法对QAM进行解调,原理如图2.1.3所示:
图2.3 QAM解调器框图
在接收端接收到的调制信号分别和两路相互正交的载波信号相乘,化简之后相同信号的表达式为:
I(t)?Y(t)coswt
?(Amcowts?Bm ?正交信号表达式为:
swtin s )wtco111Am?Amcos2wt?B2w t (2.6) msin 222Q(t)?Y(t)sinwt
?(Amcowts?Bmswtin)wts i n
111wt+Asin w2 ??Bm?Bmcos2 t (2.7) m222其中Am?Amcg(t),Bm?Amsg(t),Y(t)?Amcoswt?Bmsinwt,w?2?f,经过
- 8 -
重庆邮电大学本科毕业设计(论文)
w?2?f,经过解调得到同相与正交两路相互独立的多电平基带信号,然后把多
电平基带信号经过低通滤波器滤去高频载波之后得到直流分量为16QAM相干解调。
Am/2和
Bm/2,
再进行采样判决、L-2值电平转换和并/串转换还原出基带信号。此处L?4时为
第三节 本章小结
本章对QAM调制解调相关的基础理论进行了研究,分别给出了调制端和解 调端的原理图。在调制端,基带脉冲成形原理是一个及其重要的部分,这里对与模块设计相关的基带成形作了说明。在解调端,对解调理论当中的基本原理作了阐述。本章通过对QAM调制解调相关理论的重点阐述,为后面进一步研究QAM调制解调的仿真和FPGA实现都打下了很好的基础。
- 9 -
重庆邮电大学本科毕业设计(论文)
第三章 QAM调制器分模块设计
通常,一个电子系统有多个不同的功能模块构成,但总有一个模块将所有模块连接起来,完成整个电子系统的协同工作,这个模块就是顶层模块。由顶层向底层逐层展开设计,各功能模块的内部结构逐级得到深化和细化。
第一节 FPGA概述
接收端采取这种“自顶向下”(Top→down)的设计方法从系统级设计入手,在顶层进行功能方框图的划分和结构设计;在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述;在功能一级进行验证,然后用逻辑综合优化工具生成具体的门级逻辑电路的网表[10]。因为硬件描述语言可以比较抽象的层次上描述设计的结构和内部特征,而对系统进行行为描述的目的是在系统设计的初始阶段,通过对系统行为描述的仿真来发现系统设计中存在的问题。
逻辑综合功能将高层次的系统行为设计自动翻译成门级逻辑的电路描述,做到了设计与工艺的独立。软件设计工作主要采用Altera 公司的Quartus II 9.0 软件进行自顶向下的设计和Verilog 语言进行行为级描述设计,Quartus II 9.0 是美国Altera 公司自行设计的一种CAE 软件工具,方便利用EDA 方式设计ASIC 芯片,支持嵌入式系统的开发、DSP Builder、SOPC开发、Signal Tap 逻辑分析仪、LogicLock 优化技术等,是一个有力的开发工具。Verilog 是一种以文本形式来描述数字系统硬件结构和行为的语言,可以从上层到下层逐层描述设计思想,用一系列分层次的模块表示复杂的数字系统,并逐层进行仿真验证,把具体的模块组合由综合工具转换成门级网表,最后利用布局布线工具把网表转化为具体电路结构[11]。本次设计中接收端的数字信号处理是建立在有符号数的运算上进行的。有符号数与无符号数的对应关系为:一个8比特数系统可以产生256种不同的组合(0至255),其中前128种组合(0至127)表示正数,而后128种组合(128至255)表示负数。无符号数的0至255对应于有符号数的-1至-128和0至+127。假设0至255按顺时针方向组成一圆周,则正数应从0向顺时针的方向数,而负数应从0向逆时针的方向数。因此,对一个正数的二进制码取反加1则得到相应负数的二进制码。正数的最高位均为0而负数的最高位均为1[3]。如表3-1所示。
- 10 -
重庆邮电大学本科毕业设计(论文)
表3-1 无符号数与有符号数的对应关系
无符号数 0 1 2 … 127 128 129 … 254 255
二进制码 0000 0000 0000 0001 0000 0010 … 0111 1111 1000 0000 1000 0001 … 1111 1110 1111 1111 16进制码 00 01 02 … 7F 80 81 … FE FF 有符号数 0 +1 +2 … +127 -128 -127 … -2 -1 顶层模块源代码
//顶层模块
module top(clk, //系统时钟 rst, //复位 en, //使能信号 data_in, //1bit信号输入 data_out, //16QAM信号输出 DATA_I, //I路对应的量化值 DATA_Q); //Q路对应的量化值 input clk,rst,en; input data_in;
output signed[17: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), .clk_400(clk_400) ); shift shiftqam(
.clk_in(clk_100),
- 11 -
共分享92篇相关文档