Low-density parity-check (LDPC) codes from DVB-S.2 standard
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 configuration object from the parity-check matrix
p. The parity-check matrix has dimensions of (N-K)-by-N. In the configuration object, the
BlockLength property is N, and the
NumInformationBits property is K. Show the properties of the object. Encode a message with one column of information bits.
cfg = ldpcEncoderConfig(p)
cfg = ldpcEncoderConfig with properties: ParityCheckMatrix: [25920x64800 logical] Read-only properties: BlockLength: 64800 NumInformationBits: 38880 NumParityCheckBits: 25920 CodeRate: 0.6000
infobits = randi([0 1],cfg.NumInformationBits,1); enc = ldpcEncode(infobits,cfg);
r— Code rate
Code rate, specified as
outputFormat— Output format
Output format for parity-check matrix
H, specified as
If you set this value to
H is a
sparse logical matrix. If you set this value to
H is a two-column matrix that defines the row and column indices
of the 1s in
H— Parity-check matrix
Parity-check matrix, returned as a matrix.
The default parity-check matrix of size 32,400-by-64,800 corresponds to an irregular LDPC code with the structure shown in this table.
|Row||Number of 1s per Row|
|2 to 32400||7|
|Column||Number of 1s per Column|
|1 to 12960||8|
Columns from 32,401 to 64,800 form a lower triangular matrix. Only the elements on the main diagonal of the matrix and the subdiagonal immediately below the main diagonal are 1s. This LDPC code is used in conjunction with a BCH code in the DVB-S.2 standard to achieve a packet error rate below 10–7 at about 0.7 dB to 1 dB from the Shannon limit.
Usage notes and limitations:
All inputs must be constants. Expressions or variables are allowed if their values do not change.