1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZpyWl51x
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
QPSK是一种常用的调制方式,通过将两个比特映射到一个复平面上的相位点,实现了高效的信号传输。软解调是一种基于接收信号的概率估计进行解调的方法,能够提供更好的性能。本文将逐步介绍QPSK软解调的实现过程,包括信号采样、相位估计、判决和解调等方面。软解调是一种通过概率估计实现解调的方法,能够在信道噪声存在的情况下提供更好的性能。QPSK是一种常用的调制方式,通过将两个比特映射到相位点,实现了高效的信号传输。本文旨在详细介绍QPSK软解调的实现过程,包括信号采样、相位估计、判决和解调等步骤。
4.部分源码
....................................................................................
//QPSK调制
TQPSK TQPSKU(
.i_clk (i_clk),
.i_rst (i_rst),
.i_Ibits(i_Ibits),
.i_Qbits(i_Qbits),
.o_Ifir (o_Ifir),
.o_Qfir (o_Qfir),
.o_cos (),
.o_sin (),
.o_modc (),
.o_mods (),
.o_mod (o_mod_T)
);
//加入信道
awgns awgns_u(
.i_clk(i_clk),
.i_rst(i_rst),
.i_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,
.i_din(o_mod_T[30:15]+o_mod_T[31:16]),
.o_noise(),
.o_dout(o_Nmod_T)
);
//QPSK解调
wire signed[15:0]o_b1;
wire signed[15:0]o_b2;
RQPSK RQPSKU(
.i_clk (i_clk),
.i_clkSYM(i_clkSYM),
.i_rst (i_rst),
.i_med (o_Nmod_T),
.o_cos (),
.o_sin (),
.o_modc (o_modc),
.o_mods (o_mods),
.o_Ifir (o_rIfir),
.o_Qfir (o_rQfir),
.o_b1(o_b1),
.o_b2(o_b2)
);
//计算误码率
//I,Q两路分别计算,最后统计平均值作为误码率
//error calculate
wire [31:0]w_error_num1;
wire [31:0]w_error_num2;
Error_Chech Error_Chech_u1(
.i_clk(i_clk),
.i_rst(i_rst),
.i_trans({~i_Ibits,1'b1}),
.i_rec({~o_b1[15],1'b1}),
.o_error_num(w_error_num1),
.o_total_num()
);
//error calculate
Error_Chech Error_Chech_u2(
.i_clk(i_clk),
.i_rst(i_rst),
.i_trans({~i_Qbits,1'b1}),
.i_rec({o_b2[15],1'b1}),
.o_error_num(w_error_num2),
.o_total_num(o_total_num)
);
assign o_error_num={w_error_num1[31],w_error_num1[31:1]} + {w_error_num2[31],w_error_num2[31:1]} ;
endmodule
0sj_019m
---