基于FPGA的8PSK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

简介: 本项目基于FPGA实现8PSK调制解调系统,包含仿真验证与Verilog核心代码。通过Vivado 2019.2进行功能仿真,验证在不同信噪比(SNR=10dB/30dB)下的通信性能。系统包括调制、信道传输、解调及帧同步等模块,适用于数字通信应用。

1.算法仿真效果
vivado2019.2仿真结果如下(完整代码运行后无水印):

设置SNR=10db

62e8fe71e6b81e2e544ea2ae0cc43ad9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
ef7f28f7ab2a7d2efb1aeaaeba256b1a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

设置SNR=30db

347aca11db0995d307bd4b17d8cc125a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg
d78e46a006dc7e2de84b428fd5f5ca6f_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

仿真操作步骤可参考程序配套的操作视频。

2.算法涉及理论知识概要
随着通信技术的不断发展,相位调制技术因其高频谱效率和抗干扰能力而广泛应用于无线通信系统中。其中,8PSK(8相位相移键控)作为一种高阶调制方式,具有更高的频谱效率和更强的抗干扰能力,因此备受关注。然而,8PSK调制解调的实现复杂度较高,需要高效的数字信号处理技术。现场可编程门阵列(FPGA)作为一种可编程逻辑器件,具有高度的灵活性和并行处理能力,非常适合实现复杂的数字信号处理算法。

2.1 8PSK调制原理
8PSK调制是一种相位调制方式,其基本原理是通过改变载波的相位来传递信息。在8PSK中,一个符号周期内的相位变化有8种可能的状态,分别对应3个比特的信息。因此,8PSK调制可以看作是一种将3个比特映射到一个符号的映射方式。具体地,假设输入的比特序列为b2b1b0,则对应的8PSK符号可以表示为:

    S(t)=Acos(2πfct+θk) (1)

    其中,A是载波的振幅,fc是载波的频率,θk是第k个符号的相位,k=0,1,...,7。θk的取值由输入的比特序列b2b1b0决定,具体的映射关系如表1所示。

9c474f65bf9126721c5d9a309f21f038_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg

2.2 帧同步
在数字通信中,信息通常是以帧为单位进行组织和传输的。帧同步的目的是确定每一帧的起始位置,以便接收端能够正确地解调出每帧中的数据。

   设发送的帧结构为:帧同步码 + 信息码元序列 。帧同步码是具有特定规律的码序列,用于接收端识别帧的起始。

   帧同步的过程就是在接收序列中寻找与帧同步码匹配的位置,一旦找到匹配位置,就确定了帧的起始位置,后续的码元就可以按照帧结构进行正确的划分和处理。

3.Verilog核心程序````timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2024/08/05 03:30:02
// Design Name:
// Module Name: TOPS_8PSK
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//

module TOPS_8PSK(
input i_clk,
input i_rst,
input signed[7:0]i_SNR,
input[1:0]i_en,
input i_dat,
output [2:0]o_ISET,
output signed[15:0]o_I8psk,
output signed[15:0]o_Q8psk,
output signed[15:0]o_Ifir_T,
output signed[15:0]o_Qfir_T,
output signed[31:0]o_mod_T,
output signed[15:0]o_Nmod_T,

output signed[31:0]o_modc_R,
output signed[31:0]o_mods_R,
output signed[31:0]o_Ifir_R,
output signed[31:0]o_Qfir_R,
output [2:0]o_wbits,
output o_bits,
output [1:0]o_bits_head,
output [7:0]o_peak,
output o_en_data,
output o_en_pn,
output o_frame_start,
output signed[31:0]o_error_num,
output signed[31:0]o_total_num
);

reg[9:0]cnt;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
cnt <= 10'd0;
end
else begin
if(cnt == 79)
cnt <= 10'd0;
else
cnt <= cnt+10'd1;
end
end
reg dat_clk;
always @(posedge i_clk or posedge i_rst)
begin
if(i_rst)
begin
dat_clk <= 1'd0;
end
else begin
if(cnt == 39)
dat_clk <= 1'd1;
else
dat_clk <= 1'd0;
end
end

T8PSK T8PSKU(
.i_clk (dat_clk),
.i_clksample(i_clk),
.i_rst (i_rst),
.i_en (i_en),
.i_dat (i_dat),
.o_ISET (o_ISET),
.o_clk_3div(),
.o_I8psk(o_I8psk),
.o_Q8psk(o_Q8psk),
.o_Ifir (o_Ifir_T),
.o_Qfir (o_Qfir_T),
.o_cos (),
.o_sin (),
.o_modc (),
.o_mods (),
.o_mod (o_mod_T)
);

//加入信道
awgns awgns_u(
.i_clk(i_clk),
.i_rst(i_rst),
.i_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,
.i_din(o_mod_T[28:13]),
.o_noise(),
.o_dout(o_Nmod_T)
);

//8PSK解调
R8PSK R8SKU(
.i_clk (dat_clk),
.i_clksample(i_clk),
.i_rst (i_rst),
.o_clk_3div(),
.i_med (o_Nmod_T),
.o_cos (),
.o_sin (),
.o_modc (o_modc_R),
.o_mods (o_mods_R),
.o_Ifir (o_Ifir_R),
.o_Qfir (o_Qfir_R),
.o_wbits(o_wbits),
.o_bits (o_bits),

.o_bits_head(o_bits_head),
.o_peak(o_peak),
.o_en_data(o_en_data),
.o_en_pn(o_en_pn),
.o_frame_start(o_frame_start)

);

Error_Chech Error_Chech_u1(
.i_clk(dat_clk),
.i_rst(i_rst),
.i_trans({~i_dat,1'b1}),
.i_en_data(o_en_data),
.i_rec({~o_bits,1'b1}),
.o_error_num(o_error_num),
.o_total_num(o_total_num)
);

endmodule

```

相关文章
|
算法 异构计算
m基于FPGA的gardner环定时同步实现,含testbench测试程序
m基于FPGA的gardner环定时同步实现,含testbench测试程序
1163 0
|
编解码 算法 关系型数据库
物理层系统设计架构及关键技术 | 带你读《5G 无线系统设计与国际标准》之六
物理层的设计是整个 5G 系统设计中最核心的部分。相对于 4G,ITU 及 3GPP 对 5G提出了更高而且更全面的关键性能指标要求。其中最具有挑战的峰值速率、频谱效率、用户体验速率、时延等关键指标均需要通过物理层的设计来达成。为迎接这些挑战,5G的新空口设计在充分借鉴 LTE 设计的基础上,也引入了一些全新的设计。
物理层系统设计架构及关键技术 | 带你读《5G 无线系统设计与国际标准》之六
|
2月前
|
Linux Shell 开发工具
【2026最新版】Git官网下载、安装和使用教程(Win/Mac/Linux全涵盖)
Git是全球最流行的开源版本控制工具,可精准记录代码每次改动、支持多人协作不冲突。它免费跨平台(Windows/macOS/Linux),安装简便,GitHub/GitLab等平台均基于Git构建。最新稳定版为2.55.0。(239字)
3110 1
|
算法 数据安全/隐私保护 异构计算
基于FPGA的BPSK+costas环实现,包含testbench,分析不同信噪比对costas环性能影响
本作品基于FPGA实现了BPSK调制解调通信系统与Costas环载波同步,使用Verilog语言完成设计并提供Testbench验证。相比之前版本,优化了环路滤波器以使Costas环收敛曲线接近理论值,并新增AWGN信道模块,支持调整SNR分析噪声对锁定性能的影响。通过Vivado2019.2仿真验证,结果准确无误。核心程序包含信号调制、加性高斯白噪声生成及解调部分,适用于学习载波同步与BPSK通信原理。Costas环结构包括本地振荡器、相位解调器、环路滤波器等组件,用于估计和追踪接收信号的相位偏移,实现精确解调。
687 4
|
8月前
|
5G 数据处理 开发者
【信道估计】基于DFT和最小二乘法LS OFDM系统信道估计技术性能比较附Matlab代码
​ 作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真 关注我领取海量matlab电子书和数学建模资料  🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、OFDM 系统概述 正交频分复用(OFDM)是一种高效的数字通信技术,广泛应用于无线通信领域,如 4G、5G 移动通信系统、数字音频广播(DAB)和数字视频广播(DVB)等。OFDM 的核心思想是将高速串行数据转换为并行的低速子数据流,通过多个正交的子载波同时传输。每个子载波上的数据符号速率相对较低,符号周期相对较长,从而对多径衰落具有
418 0
|
传感器 编解码 资源调度
相位编码调频连续波雷达:融合传统与创新的智能感知技术
相位编码调频连续波雷达(PC-FMCW)融合FMCW的硬件简洁性与相位编码的抗干扰优势,通过频域扩频提升多雷达共存能力,支持MIMO与联合通信,适用于自动驾驶与智能交通系统。
1188 6
|
存储 算法 数据安全/隐私保护
基于钱搜索译码算法的BCH编译码matlab误码率仿真
本内容介绍了基于BCH码的编码算法及其MATLAB仿真,包含仿真结果、理论基础及核心程序。BCH码具备多错误纠正能力,广泛应用于通信与存储系统,结合钱搜索译码算法实现高效硬件处理。
465 5
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的2FSK+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
本文基于FPGA实现2FSK+帧同步系统,采用Verilog开发,包含Testbench、高斯信道、误码统计及可设置SNR功能。硬件版本新增ILA在线数据采集与VIO在线SNR设置模块,验证调制解调过程。理论部分介绍FSK调制解调原理、功率谱特性及帧同步机制,代码实现FSK信号生成与处理,适合数字通信学习与实践。
499 1
|
数据处理 API 流计算
XDMA与FPGA:高效数据传输的艺术
XDMA(Xilinx&#39;s DMA/Bridge Subsystem for PCI Express)是Xilinx推出的一种高效数据传输引擎,专为PCIe总线设计。通过封装PCIe协议,XDMA提供简化的API接口,支持Scatter-Gather DMA和Block DMA模式,特别适用于高性能计算、实时视频处理和大数据分析等领域的数据传输。XDMA通过链表传输和高效的PCIe接口,减少了主机CPU的负担,提高了数据传输效率。AXI4和AXI4-Stream接口进一步增强了XDMA与FPGA的协同工作能力,使其在现代计算系统中发挥重要作用。
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
809 26