【仿真测试】基于FPGA的完整QPSK软解调系统实现,含频偏估计,帧同步,定时点,Viterbi译码,信道,误码统计

1.引言

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

2.算法仿真效果

1

2

1

2

5

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

整体系统结构如下所示:

6

 

4.Verilog核心接口

7

 
// 模块定义:QPSK调制解调顶层模块,整合编码、调制、信道、解调、译码及误码率计算功能
// Module Definition: QPSK Modulation-Demodulation Top Module, integrating encoding, modulation, channel, demodulation, decoding and BER calculation
 
module QPSK_tops(
input i_clk,// 主时钟信号(Main clock signal)
input i_clkdx,
input i_clkd2x,
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,
// QPSK调制后I路FIR滤波输出(15位有符号)(QPSK modulated I-channel FIR filter output, 15-bit signed)
output signed[15:0]o_Ifir,
// QPSK调制后Q路FIR滤波输出(15位有符号)(QPSK modulated Q-channel FIR filter output, 15-bit signed)
output signed[15:0]o_Qfir,
 // 加入噪声后的调制信号(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,
// 解调后Q路基带信号(11位有符号)(Demodulated Q-channel baseband signal, 11-bit signed)
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,
 // 解调后I路数据比特(Demodulated I-channel data bit)
output  o_Ibits_data,
// 解调后Q路数据比特(Demodulated Q-channel data bit)
output  o_Qbits_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_003m

 

posted @ 2026-03-09 14:57  我爱C编程  阅读(13)  评论(0)    收藏  举报