在MATLAB中模拟LDPC和QAM

用户名

我想学习LDPC,并且想模拟一个程序。该程序将在随机生成的1x32000大小的二进制数组上使用LDPC,然后使用16-QAM进行调制,添加SNR = 20dB的噪声,对16-QAM进行解调,最后使用LDPC对其进行解码。当我运行程序并检查BER时,出现%90附近的错误,这绝对是不正确的。你能帮助我吗?

clear all
clc
M = 16;
SNR = 20;

ldpcEncoder = comm.LDPCEncoder(dvbs2ldpc(1/2));
ldpcDecoder = comm.LDPCDecoder(dvbs2ldpc(1/2));

data = randi([0 1],32400,1);
newData = ldpcEncoder(data);

a = qammod(newData,M,'InputType','bit');

b = awgn(a,SNR,'measured');

c = qamdemod(b,M,'OutputType','bit');

result = ldpcDecoder(c);
error = biterr(data,result)/length(data)
路易斯·门多

LDPC解码器对象期望输入具有“软”位(对数似然比),而您正在向其馈送“硬”单极性位。所以,更换线

c = qamdemod(b,M,'OutputType','bit');

通过

c = qamdemod(b,M,'OutputType','llr');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章