This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


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 r from 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.

RowNumber of 1s Per Row
2 to 324007

ColumnNumber of 1s Per Column
1 to 129608
12961 to 324003

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 107 at about 0.7 dB to 1 dB from the Shannon limit.


collapse all

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 p.

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

Extended Capabilities

Introduced in R2007a