当前位置: 首页 > news >正文

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

目录

1.引言

2.算法仿真效果

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

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

3.2 BPSK映射/逆映射

3.3 上变频/下变频

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

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

3.6 帧同步

3.7 采样判决

4.Verilog核心接口

5.参考文献

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


1.引言

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

2.算法仿真效果

vivado2022.2测试

设置SNR=15db

设置SNR=8db

设置SNR=1db

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

整体系统结构如下所示:

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

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

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

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

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

3.2 BPSK映射/逆映射

       BPSK映射是将二进制数字“0”和“1”映射为两个相反的模拟信号,逆映射则是将接收的模拟信号还原为原始二进制数字。

维度BPSK 映射(调制)BPSK 逆映射(解调)
操作对象二进制数字(0/1)模拟载波信号(相位 0°/180°)
核心目标将数字信号转换为模拟信号,便于传输将模拟信号还原为数字信号,实现信息接收
关键设备调制器(信号发生器)解调器(相干检测器、判决器)
核心逻辑相位分配(0°→0,180°→1)相位判断(正→0,负→1)

3.3 上变频/下变频

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

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

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

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

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

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

3.6 帧同步

       在数字通信中,信息通常是以帧为单位进行组织和传输的。帧同步的目的是确定每一帧的起始位置,以便接收端能够正确地解调出每帧中的数据。设发送的帧结构为:帧同步码 + 信息码元序列 。帧同步码是具有特定规律的码序列,用于接收端识别帧的起始。帧同步的过程就是在接收序列中寻找与帧同步码匹配的位置,一旦找到匹配位置,就确定了帧的起始位置,后续的码元就可以按照帧结构进行正确的划分和处理。

3.7 采样判决

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

4.Verilog核心接口

整个程序构架如下:

 
// 模块定义:BPSK调制解调顶层模块,整合编码、调制、信道、解调、译码及误码率计算功能
// Module Definition: BPSK Modulation-Demodulation Top Module, integrating encoding, modulation, channel, demodulation, decoding and BER calculationmodule BPSK_tops(
input i_clk,// 主时钟信号(Main clock signal)
input i_clkdx,
input i_clkd2x,
input i_clkd4x,
input i_rst, // 复位信号(高有效)(Reset signal, active high)
input signed[1:0]i_en,// 使能信号(2位,控制各模块工作使能)(Enable signal, 2-bit to control module operation)
input            i_bits,// 输入原始二进制数据(Input original binary data)
input signed[7:0]i_SNR,// 信噪比控制信号(7位有符号数,范围0~30)(SNR control signal, 7-bit signed, range 0~30)
// 卷积编码输出(2位并行输出)(Convolutional encoding output, 2-bit parallel)
output [1:0]o_enc,
// BPSK调制后I路FIR滤波输出(15位有符号)(QPSK modulated I-channel FIR filter output, 15-bit signed)
output signed[15:0]o_Ifir,// 加入噪声后的调制信号(15位有符号)(Modulated signal with added noise, 15-bit signed)
output signed[15:0]o_Nmod_T,
// 解调后I路FIR滤波输出(31位有符号)(Demodulated I-channel FIR filter output, 31-bit signed)
output signed[31:0]o_rIfir,
// 解调后Q路FIR滤波输出(31位有符号)(Demodulated Q-channel FIR filter output, 31-bit signed)
output signed[31:0]o_rQfir,// 解调相位信息(31位有符号)(Demodulated phase information, 31-bit signed)
output signed[31:0]o_phase,
// 解调后I路基带信号(11位有符号)(Demodulated I-channel baseband signal, 11-bit signed)
output signed[11:0]o_Ibase,// 信号峰值检测结果(31位有符号)(Signal peak detection result, 31-bit signed)
output signed[31:0]o_all_peak,
// 帧起始标志(高有效)(Frame start flag, active high)
output           o_frame_start,// 解调后I路数据比特(Demodulated I-channel data bit)
output  o_Ibits_data,// 解调数据使能信号(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)  
);
0sj3_007    

5.参考文献

[1]罗常青,安建平,沈业兵.采用(2,1,7)卷积码+QPSK的中频调制解调系统的FPGA实现[J].电子技术应用, 2005, 31(10):3.DOI:10.3969/j.issn.0258-7998.2005.10.027.

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

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

V

(V关注后回复码:X97

http://www.dtcms.com/a/540966.html

相关文章:

  • 晨控CK-UR08-E01与汇川AC系列PLC配置EtherNet/IP通讯连接手册
  • 稀疏Ax=b超静定方程的常用解法介绍
  • AnyBurn 多功能光盘刻录软件 v6.5
  • FPGA在AI时代的定位?
  • 网站是如何盈利的如何做一个营销型网站
  • 宁波网站推广合作商平面广告创意设计
  • 融资台州网站快速优化排名
  • p2p网贷网站建设公司晋州住房保障建设局网站
  • 2025年--Lc218-145. 二叉树的后序遍历(非递归版,栈,带测试用例)-Java版
  • docker ubuntu22.04更新报错问题——筑梦之路
  • 网站维护排名报价单模板怎么做
  • AI的“套娃”:深度解析人工智能、机器学习与深度学习
  • 配置(2):ubuntu下载后:软件源和远程连接的配置
  • 第14篇 c# HttpWebRequest添加授权token使用方法
  • Netflix Prize竞赛:推荐系统的里程碑与机器学习革命的催化剂
  • TCP4位首部长度
  • 做便宜网站中国电子商务网站
  • RL + LLM 强化学习 + 大模型微调 (PPO + GRPO)
  • 关于Redis的主从复制功能
  • 笔记:理解Yolo网络运行规律并添加自制简易功能(以Yolo11为例)
  • node.js学习(一)
  • 江苏品牌网站建设网站如何防采集
  • mybatis-plus官方文档解析
  • PySide6 Win10记事本从零到一——第三章 记事本主窗口基础
  • 中国《个人信息保护法》与欧盟《GDPR》的差异对比
  • 手动配置ingress讲服务端获取客户端的真实用户IP
  • 做网站导航按钮怎么做网页游戏大全力荐新壹玩
  • 迅为rk3568开发板配置 rk3568_uart_config.hcs
  • 临沂哪里做网站比较好wordpress注册中文插件
  • 二谈-双FIFO流水案例