Low-density parity-check codes from DVB-S.2 standard
H = dvbs2ldpc(r)
H = dvbs2ldpc(r) returns
the parity-check matrix of the LDPC code with code rate
the DVB-S.2 standard.
H is a sparse logical matrix.
Possible values for
r are 1/4, 1/3, 2/5,
1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, and 9/10. The block length of the
code is 64800.
The default parity-check matrix (32400-by-64800) corresponds to an irregular LDPC code with the structure shown in the following table.
|Row||Number of 1s Per Row|
|2 to 32400||7|
|Column||Number of 1s Per Column|
|1 to 12960||8|
|12961 to 32400||3|
Columns 32401 to 64800 form a lower triangular matrix. Only the elements on its main diagonal and the subdiagonal immediately below are 1s. This LDPC code is used in conjunction with a BCH code in the Digital Video Broadcasting standard DVB-S.2 to achieve a packet error rate below at about 0.7 dB to 1 dB from the Shannon limit.
Create an LDPC parity check matrix for a code rate of 3/5 from the DVB-S.2 standard.
p = dvbs2ldpc(3/5);
Create an LDPC encoder object from the parity check matrix
enc = comm.LDPCEncoder(p);
The parity check matrix has dimensions of (N-K)-by-N. Determine the length of the input message.
msgLength = size(p,2) - size(p,1)
msgLength = 38880