在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');

最新更新