news 2025/12/20 1:56:16

【仿真测试】基于FPGA的完整64QAM通信链路实现,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【仿真测试】基于FPGA的完整64QAM通信链路实现,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计

目录

1.引言

2.算法仿真效果

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

3.1 217卷积编码/维特比译码

3.2 64QAM调制解调原理

3.3 上变频/下变频

3.4 基于PN导频和cordic的频偏锁定

3.5 基于相关峰的定时点提取

3.6 帧同步

3.7 采样判决

4.Verilog核心接口

5.参考文献

6.完整算法代码文件获得


1.引言

基于FPGA的完整64QAM通信链路实现,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计。系统包括64QAM调制模块,64QAM解调模块,217卷积编码模块,维特比译码模块,AWGN信道模块,误码统计模块,数据源模块,基于PN序列和cordic算法的频偏估计和补偿模块,基于PN相关峰提取的帧同步和定时点提取模块等。

2.算法仿真效果

vivado2022.2测试

设置SNR=30db

设置SNR=20db

设置SNR=12db

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

整体系统结构如下所示:

3.1 217卷积编码/维特比译码

217卷积码由生成多项式定义,常见的生成多项式为G1 = 111,G2 = 101,这里的数字表示二进制形式的多项式系数。

卷积编码器:编码过程通过卷积编码器完成,它包含多个滞后寄存器和可编程加法器。输入数据依次通过滞后寄存器,然后按照生成多项式的规则,与滞后数据进行模 2 加法运算,从而生成编码输出。

编码率:217卷积码通常以“2/7”编码率工作,即每2个输入比特会产生7个编码比特,增加了数据的冗余度,使接收端能够检测和纠正传输过程中出现的错误。

维特比译码是一种针对卷积码的最大似然译码算法。它根据接收信号和已知的卷积码生成多项式,在所有可能的发送序列中,通过计算路径度量(如汉明距离等),选择一条最有可能的发送序列作为译码结果,从而纠正传输过程中由于噪声等因素引起的错误,恢复出原始的输入数据。

3.2 64QAM调制解调原理

在64QAM调制解调系统中,需要生成一定数量的数字信号,作为调制信号和参考信号。数字信号可以使用随机数生成器产生,也可以使用特定的算法生成。在本文中,我们采用了带噪声的随机数生成器产生数字信号,其中噪声是为了模拟实际通信中的信道噪声。

在64QAM调制解调系统中,需要将数字信号转换成模拟信号进行传输,这个过程称为信号调制。在QAM调制中,数字信号分为实部和虚部两个部分进行编码,然后将它们分别调制到不同的载波上,最后将两个载波叠加在一起。

3.3 上变频/下变频

将基带信号的频谱频移到所需要的较高载波频率上的过程。原理是把要变频的信号和一个固定频率的本振信号送入一个非线性器件(混频器),得到两个频率相加和相减的频率,然后通过滤波器取出上边带信号,完成上变频,实现将基带信号调制到高频载波上进行传输。

下变频是上变频的逆过程,即将接收到的高频信号的频谱下移到较低的频率上,通常是中频或基带频率。同样通过与本地振荡器产生的正弦信号进行混频,然后取混频之后的下边带信号(或经过进一步处理得到基带信号),以便后续进行信号的解调等处理。

3.4 基于PN导频和cordic的频偏锁定

发送端在发送数据帧时附加已知的伪随机(PN)导频序列,接收端利用PN导频序列来估计信号的频偏。接收端将接收到的导频数据做延迟和共轭相乘,然后根据其实部和虚部使用CORDIC算法进行迭代旋转操作,从而估计出信号的相位偏移,进而得到频偏值。最后通过将接收信号与一个相反的复数指数函数相乘,实现对接收信号的频偏补偿,将频偏锁定到零。

3.5 基于相关峰的定时点提取

在接收信号中,通过寻找与本地已知序列(如训练序列或导频序列)的相关峰来确定定时点。具体来说,将接收信号与本地序列进行相关运算,当两者的相位和时间对齐时,相关值会出现峰值,这个峰值点对应的位置就是最佳的定时点,用于确定信号的采样时刻,以保证后续信号处理的准确性。

3.6 帧同步

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

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

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

3.7 采样判决

在确定了定时点后,对接收信号进行采样,将采样值与预设的判决门限进行比较,根据比较结果确定接收信号的电平值,从而恢复出原始的二进制比特流。

4.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_64QAM( input i_clk, input i_clkdx, input i_clkd2x, input i_rst, input signed[7:0]i_SNR, input[1:0]i_en, input i_dat, //卷积编码 output [1:0]o_enc, output o_encs, output [5:0]o_ISET, output signed[15:0]o_I64QAM, output signed[15:0]o_Q64QAM, output signed[15:0]o_I64QAMs, output signed[15:0]o_Q64QAMs, output signed[15:0]o_mod_T, output signed[15:0]o_Nmod_T, output signed[31:0]o_rIfir, output signed[31:0]o_rQfir, output signed[31:0]o_phase, // 解调后I路基带信号(11位有符号)(Demodulated I-channel baseband signal, 11-bit signed) output signed[11:0]o_Ibase, output signed[11:0]o_Qbase, // 信号峰值检测结果(31位有符号)(Signal peak detection result, 31-bit signed) output signed[31:0]o_all_peak, // 帧起始标志(高有效)(Frame start flag, active high) output o_frame_start, output[5:0]o_wbits, // 解调后I路数据比特(Demodulated I-channel data bit) output o_bits, // 解调数据使能信号(Demodulated data enable signal) output o_en_data, // 维特比译码输出(Viterbi decoding output) output o_dec, // 译码使能信号(Decoding enable signal) output o_dec_enable, output signed[31:0]o_error_num,// 误码计数(31位有符号)(Error bit count, 31-bit signed) output signed[31:0]o_total_num // 总数据比特计数(31位有符号)(Total data bit count, 31-bit signed) ); ............................................... endmodule 0sj4_005m

5.参考文献

[1]王建军,徐力,安鹏.基于CORDIC的频偏估计幅角计算算法[J].微型机与应用, 2014, 33(7):3.DOI:10.3969/j.issn.1674-7720.2014.07.025.

[2]向劲松,陈怀柔.QAM调制下基于卷积码与累加编码调制级联的纠错码性能研究[J].半导体光电, 2023(6):924-930.

6.完整算法代码文件获得

完整程序见博客首页左侧或者打开本文底部

V

(V关注后回复码:X110

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/20 1:56:01

Day35:DMA 原理与架构

DMA 功能: 直接内存访问,实现外设与内存或内存间数据传输,无需 CPU 干预 大幅提高数据传输效率,释放 CPU 资源 STM32 DMA 特性: 多个通道 (如 DMA1 有 7 个通道,DMA2 有 5 个通道) 支持外设到内存、内存到外…

作者头像 李华
网站建设 2025/12/20 1:52:13

Java如何通过组件优化WebUploader分片上传效率?

大文件传输系统解决方案 需求分析与技术评估 根据贵司的需求描述,我理解您需要一个高可靠、高稳定性的大文件传输系统,具备以下核心功能: 超大文件传输能力(50G)文件夹结构保持的传输功能断点续传(包括浏…

作者头像 李华
网站建设 2025/12/20 1:49:29

阿里云客服支持与服务状态查询指南

作为国内领先的云服务提供商,阿里云提供了完善的客户支持体系和服务状态监控。本文介绍如何高效获取阿里云帮助以及如何监控平台服务状态。 一、阿里云帮助中心 访问地址 官方帮助中心:https://help.aliyun.com/ 帮助中心功能概览 阿里云帮助中心 ├── 智能搜索(快速…

作者头像 李华
网站建设 2025/12/20 1:49:15

【毕业设计】SpringBoot+Vue+MySQL Spring Boot校园闲置物品交易系统平台源码+数据库+论文+部署文档

摘要 随着高校学生数量的不断增加,校园内的闲置物品交易需求日益旺盛。传统的线下交易方式存在信息不对称、交易效率低下等问题,难以满足学生的需求。同时,环保意识的提升使得更多人倾向于通过二手交易减少资源浪费。因此,开发一个…

作者头像 李华
网站建设 2025/12/20 1:38:42

11、Hyper-V与VMM 2008:服务器虚拟化的利器

Hyper-V与VMM 2008:服务器虚拟化的利器 1. Hyper-V在测试与开发及动态数据中心中的应用 在企业的业务运作中,测试和开发是极为重要的环节,而虚拟化技术如Hyper - V能为其提供有力支持。开发人员可以使用虚拟机替代物理系统,在一个隔离、独立且高度模拟物理系统行为的环境…

作者头像 李华
网站建设 2025/12/20 1:28:02

手把手教你用Dify接入本地大模型:AI知识库实战教程!

简介 本文详细介绍了如何使用Ollama在本地部署大模型,并通过Dify接入这些本地模型构建知识库。内容涵盖Ollama安装、模型部署、Dify配置中的Base URL设置(特别是Docker环境下的特殊配置),以及如何在知识库中切换使用本地模型。文章…

作者头像 李华