在 MATLAB 中仿真 LDPC 和 QAM
Simulate LDPC and QAM in MATLAB
我想研究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 解码器对象 expects 具有“软”位(对数似然比)的输入,而您正在为其提供“硬”单极位。所以,替换行
c = qamdemod(b,M,'OutputType','bit');
来自
c = qamdemod(b,M,'OutputType','llr');
我想研究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 解码器对象 expects 具有“软”位(对数似然比)的输入,而您正在为其提供“硬”单极位。所以,替换行
c = qamdemod(b,M,'OutputType','bit');
来自
c = qamdemod(b,M,'OutputType','llr');