2026/3/27 19:54:11
网站建设
项目流程
三明交通建设集团网站,中山发布最新通知,wordpress国产网校,外贸移动商城网站建设目录
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.引言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测试设置SNR30db设置SNR20db设置SNR12db3.算法涉及理论知识概要整体系统结构如下所示3.1 217卷积编码/维特比译码217卷积码由生成多项式定义常见的生成多项式为G1 111G2 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_005m5.参考文献[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.完整算法代码文件获得完整程序见博客首页左侧或者打开本文底部VV关注后回复码X110