LDPC Encoder Definition (via Parity Check): Difference between revisions

From GNU Radio
Jump to navigation Jump to search
Line 27: Line 27:


; C++ files
; C++ files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_par_mtrx_encoder_impl.cc]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-fec/lib/ldpc_par_mtrx_encoder_impl.cc ldpc_par_mtrx_encoder_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_par_mtrx_encoder_impl.h]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-fec/lib/ldpc_par_mtrx_encoder_impl.h ldpc_par_mtrx_encoder_impl.h]


; Public header files
; Public header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/include/gnuradio/fec/ldpc_par_mtrx_encoder.h]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-fec/include/gnuradio/fec/ldpc_par_mtrx_encoder.h ldpc_par_mtrx_encoder.h]


; Block definition
; Block definition
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/grc/variable_ldpc_encoder_H.block.yml]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-fec/grc/variable_ldpc_encoder_H.block.yml variable_ldpc_encoder_H.block.yml]

Revision as of 10:50, 7 June 2022

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).

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