▲基于FPGA的QPSK调制解调系统verilog实现
目录
✅1.本系统整体构架

✨2.QPSK调制解调各个模块基本原理
正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。QPSK是一种四进制相位调制,具有良好的抗噪特性和频带利用率,广泛应用 于卫星链路、数字集群等通信业务。 在数字信号的调制方式中QPSK是最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。偏移四相相移键控信号简称“O-QPSK”。全称为offset QPSK,也就是相对移相方式OQPSK。QPSK(Quadrature Phase Shift Keying)是一种常用的数字调制方式,它可以在每个信号符号中传输两个比特的信息。QPSK在相位上有四种不同的状态,因此它可以在相位和幅度两个维度上传输数据。QPSK调制系统通过在I轴和Q轴上调制两个正交的载波信号来传输数字数据。它将每两个比特编码成一个复杂信号点,其中每个信号点对应于四种相位状态之一:0度、90度、180度和270度。
采用QPSK 调制方式,同时保证了信号传输的效率和误码性能。一般的QPSK的实施,也表明高阶PSK的实施。在星座图中的正弦和余弦波用来传输方面的书面符号:
这就产生了四个阶段π/4,3π/4,5π/4 和 7π/4 需要。
这个结果与单位的基础上功能在一个两维的信号空间被用作信号的同相分量和正交分量信号的第二首的基础功能。因此,信号星座组成的信号空间4点,1/2的因素表明,两家运营商之间的分裂,同样的总功率。
这些基础功能,为BPSK比较清楚地表明如何观看可以作为两个独立的BPSK信号的QPSK。注意的BPSK信号空间分不需要分裂BPSK的星座图中显示的两家运营商在该计划的符号(位)能源的。QPSK系统,可以实现在许多方面。发射机和接收机结构的主要组成部分的说明如下。
QPSK概念发射机结构。的二进制数据流分割成相和正交相的组成部分。这些都是再分别调制到两个正交的基函数。之后,这两个信号叠加,产生的信号是QPSK信号。注意:使用极不返回到零编码。可以摆在这些编码器的二进制数据源,但已放置后,说明涉及数字调制的数字和模拟信号之间的概念差异。
对于QPSK接收机结构。匹配的过滤器,可以与相关器代替。每个检测装置使用的参考阈值,以确定是否检测到1或0。
QPSK调制的结构框图如下图所示:

QPSK解调原理:

四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,315°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。
在数字信号的调制方式中QPSK四相移键控是目前最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。
QPSK是一种频谱利用率高、抗干扰性强的数调制方式, 它被广泛应用于各种通信系统中. 适合卫星广播。例如,数字卫星电视DVB-S2 标准中,信道噪声门限低至4. 5 dB,传输码率达到45M bös,采用QPSK调制方式,同时保证了信号传输的效率和误码性能。
🔍3.仿真结果
本系统的RTL结构如下图所示:

顶层程序结构如下:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2024/04/06 21:50:55
// Design Name:
// Module Name: qpsk_tops
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module qpsk_tops(
input i_clk,
input i_rst,
input i_x,//输入数据
input signed[7:0]i_SNR,
output signed[1:0]o_y,//极化
output signed[1:0]o_I,//串并转换为I和Q两路
output signed[1:0]o_Q,
output signed[15:0]o_Icos,//调制I和Q
output signed[15:0]o_Qsin,
output signed[15:0]o_Qpsk,//QPSK输出
output signed[15:0]o_QpskN,output signed[15:0]o_Idemod,//解调I和Q
output signed[15:0]o_Qdemod,
output signed[15:0]o_Ifilter,//滤波器
output signed[15:0]o_Qfilter,
output o_Ic,//I和Q判决输出
output o_Qc,
output o_bits//最后数据恢复输出);
qpsk_mod qpsk_mod_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_x (i_x),
.o_y (o_y),
.o_I (o_I),
.o_Q (o_Q),
.o_Icos (o_Icos),
.o_Qsin (o_Qsin),
.o_Qpsk (o_Qpsk)
);
awgns awgnsu(
.i_clk (i_clk),
.i_rst (i_rst),
//SNR:5~30
.i_SNR (i_SNR),
.i_din (o_Qpsk),
.o_noise (),
.o_dout (o_QpskN)
);
qpsk_demod qpsk_demodu(
.i_clk (i_clk),
.i_rst (i_rst),
.i_Qpsk (o_QpskN),
.o_Idemod (o_Idemod),
.o_Qdemod (o_Qdemod),
.o_Ifilter (o_Ifilter),
.o_Qfilter (o_Qfilter),
.o_Ic (o_Ic),
.o_Qc (o_Qc),
.o_y (o_bits)
);
endmodule
仿真测试结果如下:


👇4.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为Vivado2022.2:
(本程序包含程序操作步骤视频)
更多推荐
所有评论(0)