this is program for LDPC code but just for R=1/2 :

H = dvbs2ldpc(1/2);

hEnc = comm.LDPCEncoder(H);

hMod = comm.PSKModulator(4, 'BitInput',true);

hChan = comm.AWGNChannel(... 'NoiseMethod','Signal to noise ratio (SNR)','SNR',1);

hDemod = comm.PSKDemodulator(4, 'BitOutput',true,... 'DecisionMethod','Approximate log-likelihood ratio', ... 'Variance', 1/10^(hChan.SNR/10));

hDec = comm.LDPCDecoder;

hError = comm.ErrorRate;

for counter = 1:10

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

encodedData = step(hEnc, data);

modSignal = step(hMod, encodedData);

receivedSignal = step(hChan, modSignal);

demodSignal = step(hDemod, receivedSignal);

receivedBits = step(hDec, demodSignal);

errorStats = step(hError, data, receivedBits);

end

fprintf('Error rate = %1.2f\nNumber of errors = %d\n', ... errorStats(1), errorStats(2))

More Abdelkader Bouarfa's questions See All
Similar questions and discussions