LDPC Encoder Definition (via Parity Check)

From GNU Radio
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This block creates a LDPC Encoder Definition variable.

This encoder performs a reduced complexity algorithm described by Richardson and Urbanke in Appendix A of their book: Modern Coding Theory. Compared to the block LDPC Encoder Definition (via Generator), this encoder requires orders of magnitude fewer operations to create each codeword. This is accomplished by completing a significant amount of the complex matrix manipulation (including inverse, multiplication, and Gaussian elimination operations) during preprocessing. The disadvantage of this encoder is that it requires a specially formatted matrix. However, GNU Radio includes python scripts to format a standard parity check matrix appropriately for this encoder, as well as a small library of encoding-ready matrices for use.

Parameters

Parallelism
For parallel execution of multiple instances of the block (more info is needed on this)
Dimension 1
For parallelism
Dimension 2
For parallelism
Parity check matrix
The specific format of this parity check matrix is described by Richardson and Urbanke in Appendix A of their book: Modern Coding Theory (ISBN 978-0-521-85229-6). The matrix can be loaded by creating a LDPC Parity Check Matrix block and using its Id in this field.

Example Flowgraph

This flowgraph can be found at [1]

Fecapi ldpc encoders fg.png

Source Files

C++ files
ldpc_par_mtrx_encoder_impl.cc
Header files
ldpc_par_mtrx_encoder_impl.h
Public header files
ldpc_par_mtrx_encoder.h
Block definition
variable_ldpc_encoder_H.block.yml