Я хочу изучить LDP C и смоделировать программу. Эта программа будет использовать LDP C на случайно сгенерированном двоичном массиве размером 1x32000, затем он будет модулировать с помощью 16-QAM, добавлять шум для SNR = 20 дБ, выполнять демодуляцию для 16-QAM и, наконец, декодировать его с помощью LDP C. Когда я запускаю программу и проверяю ее на 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)