Menu

Home

Chrisvdw

The intention is that each of the packages released by this project can replace the object oriented LDPC code which is built into Matlab.

In Matlab, you can

H = t2_std_dvbt2_bl_ldpc(2/3, 64800, '1.3.1'); % Get an encoding matrix

enc = fec.ldpcenc(H); % Create an encoding object;
s = randint(1,43200,2); % Create an information block
cw = encode(enc, s); % Use the encoder object to encode the info block into a code word

% Here you have to do modulation, channel simulation & demodulation
% llr0 = .... (Output of demod are log-likelihood ratio.)

dec = fec.ldpcenc(H); % Create a decoding object;
llrout = decode(dec, llr0);

In Octave, with one of our packages, you can:

H = t2_std_dvbt2_bl_ldpc(2/3, 64800, '1.3.1'); % Get an encoding matrix

enc = dvbldpcenc(H); % Create an encoding object;
s = randint(1,43200,2); % Create an information block
cw = dvbldpcencode(enc, s); % Use the encoder object to encode the info block into a code word

% Here you have to do modulation, channel simulation & demodulation
% llr0 = .... (Output of demod are log-likelihood ratio.)

dec = dvbldpcenc(H); % Create a decoding object;
[llrout iter pchecks] = dvbldpcdecode(dec, llr0);

Note that Matlab modifies some fields of the decoding object, like the actual iterations and the unsatisfied parity checks. As long as Octave does not support OO, we have to pass them out of dvbldpcdecode as output arguments.

Project Members: