m基于FPGA的带相位偏差64QAM调制信号相位估计和补偿算法verilog实现,包含testbench

1.算法仿真效果


本系统进行了Vivado2019.2平台的开发,其中Vivado2019.2仿真结果如下:



将FPGA的仿真结果导入到matlab中,显示星座图,结果如下所示:





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


在现代通信系统中,调制技术是实现高速数据传输和频谱效率优化的重要手段。其中,64QAM调制技术是一种常见的高阶调制技术,可以实现每个符号传输6个比特的信息,从而提高数据传输速率。然而,在实际应用中,调制信号往往会受到各种干扰和失真的影响,导致传输错误率增加。因此,相位估计和补偿技术是调制信号解调和恢复的关键环节之一。介绍一种用于带相位偏差64QAM调制信号相位估计和补偿的VV算法,并详细阐述其实现步骤和数学原理。


3.Verilog核心程序

module TEST;


reg clk;

reg rst;

reg start;


wire  [5:0] parallel_data;

wire [15:0]sin;

wire [15:0]cos;

wire signed[19:0]  I_com;

wire signed[19:0]  Q_com;

wire signed[19:0]  I_com2;

wire signed[19:0]  Q_com2;

wire signed[15:0]I_comcos;

wire signed[15:0]Q_comsin;



// DUT

tops_64QAM_mod  top(

.clk(clk),

.rst(rst),

.start(start),

.parallel_data(parallel_data),

.sin(sin),

.cos(cos),

.I_com(I_com),

.Q_com(Q_com),

.I_com2(I_com2),

.Q_com2(Q_com2),

.I_comcos(I_comcos),

.Q_comsin(Q_comsin)

);



wire signed[23:0]I_comcos2;

wire signed[23:0]Q_comsin2;

wire signed[7:0]o_Ifir;

wire signed[7:0]o_Qfir;

wire signed[15:0]o_Ifir_phase;

wire signed[15:0]o_Qfir_phase;

wire signed[31:0]o_phase;

tops_64QAM_phase_est  top2(

.clk(clk),

.rst(rst),

.start(start),

.I_comcos(I_comcos),

.Q_comsin(Q_comsin),

.I_comcos2(I_comcos2),

.Q_comsin2(Q_comsin2),

.o_Ifir(o_Ifir),

.o_Qfir(o_Qfir),

.o_I_phase(o_Ifir_phase),

.o_Q_phase(o_Qfir_phase),

.o_phase(o_phase)

);  



initial begin

clk = 0;

rst = 0;

start = 1;

#10;

rst = 1;

end

always #5

clk <= ~clk;

reg writeen;

initial

begin

writeen = 1'b0;

#150000

writeen = 1'b1;

end

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容