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

1.算法仿真效果


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



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



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

相位偏差是数字通信系统中常见的问题,在QPSK调制通信系统中也同样存在。相位偏差可能导致误码率的增加和系统性能下降。因此,相位偏差的估计和补偿是数字通信系统中一个重要的问题。本文提出了一种基于V&V算法的带相位偏差QPSK调制信号相位估计和补偿方法,提高QPSK调制通信系统的性能。


2.1、问题描述

在QPSK调制通信系统中,接收信号可以表示为:


3.Verilog核心程序

//QPSK调制

TQPSK TQPSKU(

.i_clk  (i_clk),

.i_rst  (i_rst),

.i_clkSYM(i_clkSYM),

.i_dat  (i_dat),

.o_Idiff(o_Idiff),

.o_Qdiff(o_Qdiff),


.o_Ifir (o_Ifir_T),

.o_Qfir (o_Qfir_T),

.o_cos  (o_cos_T),

.o_sin  (o_sin_T),

.o_modc (o_modc_T),

.o_mods (o_mods_T),

.o_mod  (o_mod_T)

);





//QPSK相位估计和补偿

RQPSK_phase_est RQPSKU(

.i_clk  (i_clk),

.i_rst  (i_rst),

.i_clkSYM(i_clkSYM),

.i_med  (o_mod_T[25:10]),

.o_cos  (o_cos_R),

.o_sin  (o_sin_R),

.o_modc (o_modc_R),

.o_mods (o_mods_R),

.o_Ifir (o_Ifir_R),

.o_Qfir (o_Qfir_R),

.o_I_phase(o_I_phase),

.o_Q_phase(o_Q_phase),

.o_phase(o_phase)

);

reg writeen;

initial

begin

writeen = 1'b0;

i_clk = 1'b1;

i_clkSYM=1'b1;

i_rst = 1'b1;

#1600

i_rst = 1'b0;


#100

writeen = 1'b1;

end

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

相关阅读更多精彩内容

友情链接更多精彩内容