1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZpuVm5dp
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
1024QAM是一种高级调制方式,可以携带更多的信息位(10比特/符号),从而实现更高的数据传输速率。然而,这也带来了更高的误码率(BER)要求和更复杂的信号处理需求。FPGA由于其可编程性和高性能,成为实现这种复杂调制的理想平台。1024QAM调制将输入的10比特映射到一个复数平面上的1024个不同的星座点之一。每个星座点的位置由输入比特决定,且分布在二维平面上。
4.部分源码
.......................................................................
// DUT
tops_1024QAM_mod top(
.clk(clk),
.rst(rst),
.start(start),
.parallel_data(parallel_data),
.sin(sin),
.cos(cos),
.I_com(),
.Q_com(),
.I_comcos(I_com),//基带方式输出,即实际通信中的复数模式
.Q_comsin(Q_com)
);
//加入信道
//实部
awgns awgns_u1(
.i_clk(clk),
.i_rst(~rst),
.i_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,
.i_din(I_com),
.o_noise(),
.o_dout(I_Ncom)
);
//虚部
awgns awgns_u2(
.i_clk(clk),
.i_rst(~rst),
.i_SNR(i_SNR), //这个地方可以设置信噪比,数值大小从-10~50,
.i_din(Q_com),
.o_noise(),
.o_dout(Q_Ncom)
);
tops_1024QAM_demod top2(
.clk(clk),
.rst(rst),
.start(start),
.I_Ncom(I_Ncom),
.Q_Ncom(Q_Ncom),
.I_comcos2(I_comcos2),
.Q_comsin2(Q_comsin2),
.o_Ifir(o_Ifir),
.o_Qfir(o_Qfir),
.o_sdout(o_sdout),
.flag_reg(flag_reg)
);
//6个bit同时统计误码率
wire signed[31:0]o_error_num1;
wire signed[31:0]o_total_num1;
Error_Chech Error_Chech_u1(
.i_clk(clk),
.i_rst(~rst),
.i_trans(parallel_data),
.i_rec(o_sdout),
.o_error_num(o_error_num1),
.o_total_num(o_total_num1)
);
assign o_total_num = o_total_num1;
assign o_error_num = o_error_num1;
endmodule
0sj_015m
---