verilog QAM代码_第1页
verilog QAM代码_第2页
verilog QAM代码_第3页
verilog QAM代码_第4页
verilog QAM代码_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、  QAM调制中,数据信号由相互正交的两个载波的幅度变化表示。QAM 是一种矢量调制,将输入比特先映射到一个复平面(星座图),形成复数调制符号,然后将该符号的I、Q分量,采用幅度调制,分别对应调制在相互正交(时域正交)的两个载波 cos 和 sin 上。数学公式:         16QAM信号在星座图上具有16个样点,每个样点表示一种矢量状态,16QAM 有 16 态,每 4 位二进制数规定了16态中的一个状态,16QAM每个符号时间传送4比特映射。        根据IEEE 802.11a

2、 规定,16QAM 编码表如下所示。经过表中映射后的I/Q数据再乘上1/10进行归一化,即得到调制后的I/Q值。 实现代码重要部分:因为是串行输入,得先缓存为4bit,然后每4比特映射一个矢量状态。          经过扰码,卷积编码,交织后的DATA数据,一个符号有192比特,然后经过 16QAM ,被调制成 48 个复数,作为下一级插入导频模块的输入。代码:module DATA_16QAM_mapper(DM_DIN,DM_ND,DM_RST,DM_CLK,DM_RE,DM_IM,DM_INDEX, DM_RDY);

3、input DM_DIN; /输入信号input DM_CLK; /脉冲input DM_ND; /来自上一模块的信号提示input DM_RST;/复位信号output7:0 DM_RE;/输出16QAM调制的实部,八位,一位符号位,一位整数位,六位小数位output7:0 DM_IM;/输出16QAM调制的虚部output5:0 DM_INDEX;/输出标号output DM_RDY;/输出信号提示reg7:0 DM_RE;reg7:0 DM_IM;reg DM_RDY;reg7:0 RE_TEMP;/输出实部暂存reg7:0 IM_TEMP;/输出虚部暂存reg3:0 STOR;/由于四

4、个输入信号对应一个星座点,因此需要四位的存储器存放reg MAPEN;reg5:0 DM_COUNT;reg5:0 DM_INDEX;reg OUTEN;/使Q_RDY比输入四个信号中最后一个晚一个脉冲的过渡,保证转换完成reg1:0 counter;/四个输入信号的计数reg1:0 OUT_COUNT;always (negedge DM_RST or posedge DM_CLK) /Q_RST高电平异步清零 if(!DM_RST) begin MAPEN<=1'b0; DM_RE7:0<=8'b00000000; DM_IM7:0<=8'b000

5、00000; DM_COUNT5:0<=6'b000000; DM_INDEX5:0<=6'b000000; DM_RDY<=0; RE_TEMP7:0<=8'b00000000; IM_TEMP7:0<=8'b00000000; STOR3:0<=4'b0000; OUTEN<=0; counter1:0<=2'b00; OUT_COUNT<=2'b00; end else begin if(DM_ND) /16QAM encoding begin counter<=count

6、er+1; case(counter) 2'b00:STOR0<=DM_DIN; 2'b01:STOR1<=DM_DIN; /存入输入数值 2'b10:STOR2<=DM_DIN; 2'b11:STOR3<=DM_DIN; endcase end else begin counter1:0<=2'b00; STOR3:0<=4'b0000; end if (counter=2'b11) / MAPEN 标记四个信号是否已经存入 MAPEN<=1'b1; else MAPEN<=1&#

7、39;b0; if(MAPEN) begin case(STOR1:0) 2'b00:RE_TEMP7:0<=8'b11000011; 2'b10:RE_TEMP7:0<=8'b11101100; 2'b01:RE_TEMP7:0<=8'b00111101; 2'b11:RE_TEMP7:0<=8'b00010100; endcasecase(STOR3:2)2'b00:IM_TEMP7:0<=8'b11000011;2'b10:IM_TEMP7:0<=8'b11

8、101100;2'b01:IM_TEMP7:0<=8'b00111101; 2'b11:IM_TEMP7:0<=8'b00010100;endcaseOUTEN<=1;end else begin OUTEN<=0;RE_TEMP7:0<=8'b00000000;IM_TEMP7:0<=8'b00000000;endif(OUTEN) / 输出 begin DM_RE<=RE_TEMP; DM_IM<=IM_TEMP; DM_COUNT<=DM_COUNT+1; DM_INDEX<=DM_COUNT; DM_RDY<=1'b1; end if (DM_INDEX=47) OUT_COUNT<=OUT_COUNT+1; else OUT_COUNT<=0; if (OUT_COUNT=2'b11) begin DM_RE7:0<=8'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论