首页 > 其他分享 >m基于FPGA的16QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步

m基于FPGA的16QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步

时间:2023-06-12 15:12:18浏览次数:43  
标签:wire 包含 FPGA signed 正交 电平 verilog 16QAM 调制

1.算法仿真效果

本系统进行了两个平台的开发,分别是:

 

Vivado2019.2

 

Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition

 

其中Vivado2019.2仿真结果如下:

 

 Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition的测试结果如下:

 

2.算法涉及理论知识概要

     16QAM全称正交幅度调制是英文Quadrature Amplitude Modulation的缩略语简称,意思是正交幅度调制,是一种数字调制方式。产生的方法有正交调幅法和复合相移法。

 

16QAM是指包含16种符号的QAM调制方式。

      16QAM 是用两路独立的正交 4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。它是 2ASK 调制的推广,和 2ASK 相比,这种调制的优点在于信息传输速率高。

正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。

16 进制的正交振幅调制是一种振幅相位联合键控信号。16QAM 的产生有 2 种方法:

(1)正交调幅法,它是有 2 路正交的四电平振幅键控信号叠加而成;

(2)复合相移法:它是用 2 路独立的四相位移相键控信号叠加而成。

这里采用正交调幅法。

 

       数字信号是通过FPGA的输出端口生成的。在16QAM调制中,每个符号包含4个比特,因此需要一个4位二进制计数器来生成数字信号。计数器的输出被映射到星座图上的一个点,然后通过数字到模拟转换器(DAC)转换为模拟信号。串/并变换器将速率为Rb的二进制码元序列分为两路,速率为Rb/2.2-4电平变换为Rb/2 的二进制码元序列变成速率为RS=Rb/log216 的 4 个电平信号,4 电平信号与正交载波相乘,完成正交调制,两路信号叠加后产生 16QAM信号.在两路速率为Rb/2 的二进制码元序列中,经 2-4 电平变换器输出为 4 电平信号,即M=16.经 4 电平正交幅度调制和叠加后,输出 16 个信号状态,即 16QAM.

RS=Rb/log216=RB/4.

2. 16QAM 解调原理

       16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的 16QAM 信号进行正交相干解调,一路与 cos ω c t 相乘,一路与 sin ω c t 相乘。然后经过低通滤波器,低通滤波器 LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。

 

3.Verilog核心程序

 

`timescale 1ns / 1ns
 
module TEST;
 
	reg clk;
	reg rst;
	reg start;
 
    wire  [3:0] parallel_data;
    wire [15:0]sin;
    wire [15:0]cos;
	wire signed[19:0]  I_com;
	wire signed[19:0]  Q_com;
    wire signed[15:0]I_comcos;
    wire signed[15:0]Q_comsin;
	 
 
	// DUT
	tops_16QAM_mod  top(
	   .clk(clk),
	   .rst(rst),
	   .start(start),
	   .parallel_data(parallel_data),
	   .sin(sin),
	   .cos(cos),
	   .I_com(I_com),
	   .Q_com(Q_com),
	   .I_comcos(I_comcos),
	   .Q_comsin(Q_comsin)
	   );
	   
	   
wire signed[23:0]I_comcos2;
wire signed[23:0]Q_comsin2;
wire signed[7:0]o_Ifir;
wire signed[7:0]o_Qfir;
wire signed[3:0]o_sdout;
tops_16QAM_demod  top2(
	   .clk(clk),
	   .rst(rst),
	   .start(start),
	   .I_comcos(I_comcos),
	   .Q_comsin(Q_comsin),
	   .I_comcos2(I_comcos2),
	   .Q_comsin2(Q_comsin2),
	   .o_Ifir(o_Ifir),
	   .o_Qfir(o_Qfir),
	   .o_sdout(o_sdout)
	   );  
	   
 
	initial begin
		clk = 0;
		rst = 0;
		start = 1;
		#10;
		rst = 1;
	end
	
	always #5
	clk <= ~clk;
 
 
endmodule
 

 

  

 

标签:wire,包含,FPGA,signed,正交,电平,verilog,16QAM,调制
From: https://www.cnblogs.com/51matlab/p/17475069.html

相关文章

  • url中包含特殊字符,访问400处理
    原因是一个完整的请求地址包含http(s)://xxxx/xxx/xxxurl里面包含tomcat鬼定字符以外的字符,他们不被认可为合理的url参数,必须满足RFC3986规范/***解决servlet字符串乱码**@returnConfigurableServletWebServerFactory*/@Bean@......
  • 如何防止头文件被重复包含或引用?
    #include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include"x.h"#include"x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include"a.h"#include"b.h"看上去没什么问题。如果a.h和b.h都包含了一个头文......
  • Xilinx GTH 简介 ,CoaXpress FPGA PHY 部分
    什么是GTHGTH是XilinxUltraScale系列FPGA上高速收发器的一种类型,本质上和其它名称如GTP,GTX等只是器件类型不同、速率有差异;GTH最低速率在500Mbps,最高在16GbpsCoaXpressHost/DeviceIP均需要用到厂商的GT收发器模块,因此这里写一篇笔记作为开发记录GTH的特性physicalc......
  • Python判断字符串是否包含特定子串的7种方法(转)
    转自:Python判断字符串是否包含特定子串的7种方法在写代码的过程中,我们经常会遇到这样一个需求:判断字符串中是否包含某个关键词,也就是特定的子字符串。比如从一堆书籍名称中找出含有“python”的书名。判断两个字符串相等很简单,直接==就可以了。其实判断包含子串也非常容易,而且......
  • m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:2.算法涉及理论知识概要现代通信系统中,为了保证数据......
  • m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench
    1.算法仿真效果 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  2.算法涉及理论知识概要......
  • m基于FPGA的QPSK调制解调通信系统verilog实现,包含testbench,不包含载波同步
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:2.算法涉及理论知识概要QPSK是一种数字调制方式,它将......
  • m基于FPGA的QPSK调制解调通信系统verilog实现,包含testbench,不包含载波同步
    1.算法仿真效果 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:   Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:    2.算法涉及理......
  • MES包含那些功能?
    MES(制造执行系统)是一种用于管理制造过程的计算机化系统。它提供了许多功能来监控和控制生产过程,以及协调与其他企业资源计划(ERP)系统和自动化设备的集成。下面是一些MES常见的功能:生产调度和计划:MES可以帮助制定生产计划和排程,确保生产资源的有效利用,并满足交付日期和客......
  • Google Earth Engine(GEE)——全球栖息地异质性(数据集包含14个指标)
    全球栖息地异质性这些数据集包含14个指标,根据中分辨率成像分光仪(MODIS)获取的增强植被指数(EVI)图像的纹理特征,以多种分辨率量化全球生境的空间异质性。关于这些指标的更多信息以及对其在生物多样性建模中的效用的评价。该数据集以1公里、5公里和25公里的分辨率生成,这里只列出了1公里......