LDPC Encoder Definition (via Parity Check)

From GNU Radio
Revision as of 10:53, 7 June 2022 by MubashiraZaman (talk | contribs) (→‎Parameters)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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[edit]

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[edit]

This flowgraph can be found at [1]

Fecapi ldpc encoders fg.png

Source Files[edit]

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