Expand description
LDPC systematic encoder.
This module implements a systematic encoder for LDPC (n, k) codes in which the parity check matrix H has size (n-k) x n (i.e., has maximum rank), and the square matrix formed by the last n-k columns of H is invertible. For these codes, the encoder uses the first k symbols of the codeword as systematic.
There are two cases handled by the encoder, depending on the structure of the parity check matrix H = [H0 H1], where H1 is square. In both cases, the matrix H1 is required to be invertible.
The first case is the case of a “staircase-type” LDPC code (this is the case for DVB-S2 codes, for example). In this case, H1 has its main diagonal and the diagonal below filled with ones and no other one elsewhere. An O(n) encoding can be obtained by mutiplying the matrix H0 by the k message bits (as a column vector on the right) and by computing the n-k running sums of the components of the resulting vector of size n-k.
In the second case (non staircase-type), the encoder computes G0 = H1^{-1}H0, which in general is a dense matrix. To encode a message, the matrix G0 is multiplied by the k message bits (as a column vector on the right) to obtain the n-k parity check bits. In this case, the encoding complexity is O(n^2).
Structs§
- Encoder
- LDPC systematic encoder.
Enums§
- Error
- LDPC encoder error.