Parity-check matrix, specified as a sparse (*N* –
*K*)-by-*N* binary-valued matrix.
*N* is the length of the output LDPC codeword and must
be in the range (0, 2^{31}). *K* is
the length of the uncoded message and must be less than
*N*. The last (*N* – *K*)
columns in the parity-check matrix must be an invertible matrix in the
Galois field of order 2, `gf`

(2).

You can also specify the parity-check matrix as a two-column nonsparse index matrix,
`I`

, that defines the row and column indices of the
`1`

s in the parity-check matrix such that
`sparse(I(:,1),I(:,2),1)`

.

This parameter accepts numeric data types. When you set this parameter to a sparse binary
matrix, this parameter also accepts the `Boolean`

data
type.

The default value uses the `dvbs2ldpc`

function to
configure a sparse parity-check matrix for half-rate LDPC coding, as
specified in the DVB-S.2 standard.

### Note

When the last (*N* –
*K*) columns of the parity-check matrix
form a triangular matrix, forward or backward substitution
is performed to solve the parity-check equation.

When the last (*N* –
*K*) columns of the parity-check matrix do
not form a triangular matrix, a matrix inversion is
performed to solve the parity-check equation. If a large
matrix needs to be inverted, initializations or updates take
more time.

**Example: **`dvbs2ldpc(R,'indices')`

configures the index matrix for the
DVB-S.2 standard, where `R`

is the code rate, and
`'indices'`

specifies the output format of
`dvbs2ldpc`

as a two-column double-precision matrix
that defines the row and column indices of the `1`

s in the
parity-check matrix.

**Data Types: **`double`

| `Boolean`