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

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

时间:2023-06-11 17:22:10浏览次数:31  
标签:QPSK 包含 FPGA 解调 signed 模块 调制

1.算法仿真效果

 

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

 

Vivado2019.2

 

Quartusii18.0+ModelSim-Altera 6.6d  Starter Edition

 

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

 

 

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

 

 

 

 

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

       QPSK是一种数字调制方式,它将两个二进制比特映射到一个符号上,使得每个符号代表四种可能的相位状态。因此,QPSK调制解调系统可以实现更高的传输速率和更高的频谱效率。基于FPGA的QPSK调制解调系统通常由以下几个模块组成:

 

数据生成模块:生成要传输的二进制数据流。

QPSK调制模块:将二进制数据流转换为符号序列,并将每个符号映射到特定的相位状态。

QPSK解调模块:将接收到的符号序列解调为二进制数据流。

下面将详细介绍每个模块的原理和实现方法。

 

QPSK调制模块

     QPSK调制模块将二进制数据流转换为符号序列,并将每个符号映射到特定的相位状态。QPSK调制使用四个相位状态,分别为0度、90度、180度和270度。在QPSK调制中,每个符号代表两个比特,因此,输入二进制数据流的速率必须是符号速率的两倍。

     QPSK调制模块通常使用带有正弦和余弦输出的正交调制器(I/Q调制器)来实现。在I/Q调制器中,输入信号被分成两路,一路被称为“正交(I)路”,另一路被称为“正交(Q)路”。每个输入符号被映射到一个特定的正交信号,然后通过合成器将两个信号相加,形成QPSK调制信号。

 

QPSK解调模块

       QPSK解调模块将接收到的符号序列解调为二进制数据流。解调模块使用相干解调器来实现,相干解调器可以将接收到的信号分解成两个正交分量,然后将它们与本地正交信号相乘,得到原始的QPSK符号。解调器的输出是一个复数,需要进行幅值解调和相位解调才能得到原始的二进制数据流。

 

 基于FPGA的QPSK调制解调系统的开发过程。

        首先需要选择适合的FPGA平台和开发工具。常用的FPGA平台有Xilinx和Altera,开发工具包括Vivado,以及Altera Quartus。选择FPGA平台和开发工具需要考虑系统的要求和开发人员的经验。

系统设计

       系统设计包括确定系统的功能、模块划分和接口设计。在QPSK调制解调系统中,需要确定每个模块的功能和接口,并确定数据流的方向和速率。在设计过程中,需要考虑系统的性能、资源占用和延迟等因素。

       模块实现是基于FPGA的QPSK调制解调系统开发的核心部分。在模块实现过程中,需要使用硬件描述语言(HDL)编写代码,并使用仿真工具进行验证。常用的HDL语言有VHDL和Verilog,仿真工具包括ModelSim和ISE Simulator。

       基于FPGA的QPSK调制解调系统是一种高效、可靠的数字通信系统。通过使用FPGA平台和硬件描述语言,可以实现高性能、低延迟、低功耗的QPSK调制解调系统。在开发过程中,需要考虑系统的功能、性能、资源占用和延迟等因素。通过系统测试,可以确保系统的正确性和可靠性。

 

3.Verilog核心程序

 

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2023/05/03 05:57:40
// Design Name: 
// Module Name: TQPSK
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
module TQPSK(
input i_clk,
input i_rst,
input i_Ibits,
input i_Qbits,
 
output signed[15:0]o_Ifir,
output signed[15:0]o_Qfir,
output signed[15:0]o_cos,
output signed[15:0]o_sin,
output reg signed[31:0]o_modc,
output reg signed[31:0]o_mods,
output signed[31:0]o_mod
);
 
wire signed[1:0] w_Inz=(i_Ibits == 1'b1)?2'b01:2'b11;
wire signed[1:0] w_Qnz=(i_Qbits == 1'b1)?2'b01:2'b11;
 
//成型滤波
fiter uut1(
.i_clk  (i_clk),
.i_rst  (i_rst),
.i_din  (w_Inz),
.o_dout (o_Ifir)
);
 
fiter uut2(
.i_clk  (i_clk),
.i_rst  (i_rst),
.i_din  (w_Qnz),
.o_dout (o_Qfir)
);
//DDS
wire [9:0]mcos;
wire [9:0]msin;
NCO_Trans NCO_Trans_u(
                     .i_clk (i_clk),
					 .i_rst (i_rst),  
					 .i_K   (10'd512),
					 .o_cos (mcos),
					 .o_sin (msin) 
	             );
assign o_cos={mcos,6'd0};
assign o_sin={msin,6'd0};
//调制QPSK
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
     begin
     o_modc <= 32'd0;
     o_mods <= 32'd0;
     end
else begin
     o_modc <= $signed(o_Ifir)*$signed(o_cos);
     o_mods <= $signed(o_Qfir)*$signed(o_sin);
     end
end    
   
assign o_mod=o_modc+o_mods;
endmodule

 

  

 

标签:QPSK,包含,FPGA,解调,signed,模块,调制
From: https://www.cnblogs.com/51matlab/p/17473231.html

相关文章

  • MES包含那些功能?
    MES(制造执行系统)是一种用于管理制造过程的计算机化系统。它提供了许多功能来监控和控制生产过程,以及协调与其他企业资源计划(ERP)系统和自动化设备的集成。下面是一些MES常见的功能:生产调度和计划:MES可以帮助制定生产计划和排程,确保生产资源的有效利用,并满足交付日期和客......
  • Google Earth Engine(GEE)——全球栖息地异质性(数据集包含14个指标)
    全球栖息地异质性这些数据集包含14个指标,根据中分辨率成像分光仪(MODIS)获取的增强植被指数(EVI)图像的纹理特征,以多种分辨率量化全球生境的空间异质性。关于这些指标的更多信息以及对其在生物多样性建模中的效用的评价。该数据集以1公里、5公里和25公里的分辨率生成,这里只列出了1公里......
  • m基于FPGA的8点DCT变换verilog实现,包含testbench,并对比matlab的计算结果
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:matlab对比结果如下:部分小的误差是由于FPGA设计......
  • m基于FPGA的BPSK调制解调通信系统verilog实现,包含testbench,包含载波同步
    1.算法仿真效果vivado2019.2仿真结果如下:对比没载波同步和有载波同步的仿真效果,我们可以看到,当不存在载波同步时,数据的包络会有一个缓慢的类正弦变换,这是由于存在频偏导致的。而当加入载波同步之后,数据的包络会存在少量起伏,但数据反转的情况已经没有了,说明频偏得到了补偿。......
  • m基于FPGA的8点DCT变换verilog实现,包含testbench,并对比matlab的计算结果
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  matlab对比结果如下:   ......
  • m基于FPGA的BPSK调制解调通信系统verilog实现,包含testbench,包含载波同步
    1.算法仿真效果vivado2019.2仿真结果如下:         对比没载波同步和有载波同步的仿真效果,我们可以看到,当不存在载波同步时,数据的包络会有一个缓慢的类正弦变换,这是由于存在频偏导致的。而当加入载波同步之后,数据的包络会存在少量起伏,但数据反转的情况已经没有了,说......
  • DVWA安装及文件包含
    1.安装步骤:查看网络连接这样就是联网了安装所需要的环境安装apache :yum-yinstallhttpd 如果是这样说明安装成功如果这样说明没网(解决方法在开头)启动apache :servicehttpdstart 安装PHP    :yum-yinstallphp是这样则是安装好了不是这样请检查网络安装mysql-......
  • 高考答题卡怎么被机器识别?基于OpenCV答题卡识别模拟-米尔ARM+FPGA异构开发板
    本篇测评由优秀测评者“筑梦者与梦同行”提供。 01.前言MYD-JX8MMA7SDK发布说明 根据下图文件内容可以知道myir-image-full系统支持的功能,其支持OpenCV,也就不用在格外安装相关驱动包等,省了很多事情。02.MYD-JX8MMA7软件评估指南本文介绍了Python的基本操作,在文档中10......
  • m基于FPGA的FOC控制器verilog实现,包括CLARK,PARK,PID及SVPWM,含testbench
    1.算法仿真效果QuartusII12.1(64-Bit) ModelSim-Altera6.6dStarterEdition 仿真结果如下:   2.算法涉及理论知识概要整个系统的结构如下所示: 1、采集到两相电流 2、经过clarke变换后得到两轴正交电流量, 3、经过旋转变换后得到正交的电流量Id、Iq......
  • Java多态综合案例(包含接口,接口实现类)
    首先定义一个接口名为USB其次定义两个实现类分别名为KeyBorad和Mouse此时就可以使用多态了,因为实现类和接口某种意义上来说是继承关系。USBu=newKeyborad();USBu2 =newMouse();因为键盘和鼠标都具有插拔功能,所以为了方便,把这两个功能写入接口,然后实现类重写。pac......