LDPC Decoder

Decode binary low-density parity-check code specified by parity-check matrix

Library

Block sublibrary of Error Detection and Correction

Description

This block implements the message-passing algorithm for decoding low-density parity-check (LDPC) codes, which are linear error control codes with sparse parity-check matrices and long block lengths that can attain performance near the Shannon limit.

The LDPC Decoder block is designed to:

The LDPC Decoder block uses the same algorithm as the fec.ldpcdec Communications Toolbox™ object. See Decoding Algorithm for details.

(nk) and n are the number of rows and columns, respectively, in the parity-check matrix.

The input must be a frame-based vector and a real-valued signal of type double. Each element is the log-likelihood ratio for a received bit (more likely to be 0 if the log-likelihood ratio is positive). The first k elements correspond to the information part of a codeword.

Both the input and the output are discrete-time signals. The ratio of the output sample time to the input sample time is if only the information part is decoded, and 1 if the entire codeword is decoded.

Type commdvbs2 at the command line to see a demo using this block.

Dialog Box

Parity-check matrix

This block can accept a sparse matrix with dimension n - k by n (n > k > 0) of real numbers. All nonzero elements must be equal to 1. n and k are only limited by the amount of available memory.

Output format

The options are Information part and Whole codeword.

The output is a real-valued signal in the form of a frame-based column vector. It has k elements if the output format is set to Information part, and n elements if set to whole codeword.

Decision type

The options are Hard decision and Soft decision.

If this is set to Hard decision, the output is decoded bits (of type double or boolean). If set to Soft decision, the output is log-likelihood ratios (of type double).

Output data type

This parameter appears only when Decision type is set to Hard decision.

The options are boolean and double.

Number of iterations

This can be any positive integer.

Stop iterating when all parity checks are satisfied

If checked, the block will determine whether the parity checks are satisfied after each iteration and stop if all are satisfied.

Output number of iterations executed

Creates an output port on the block when selected.

Output final parity checks

Creates an output port on the block when selected.

Pair Block

dvbs2ldpc and LDPC Encoder

References

[1] Gallager, Robert G., Low-Density Parity-Check Codes, Cambridge, MA, MIT Press, 1963.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS