Difference between revisions of "LDPC Parity Check Matrix"

From GNU Radio
Jump to: navigation, search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...")
 
(Example Flowgraph)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
[[Category:Block Docs]]
 
[[Category:Block Docs]]
[[Category:Stub Docs]]
+
This block creates a FEC LDPC Parity Check Matrix variable.
This is the template for the [[:Category:Block_Docs|"Page-per-block Docs"]].  This first section should describe what the block does and how to use it, using however many paragraphs necessary.  Note that the title of the wiki page should match the block's name in GRC, i.e. the one defined in the block's .grc file.  Look at the [[FFT]] Block for a good example.
 
  
As this is a basic template, it's also in the [[:Category:Stub_Docs|"Stub Docs category"]]. Please improve it.
+
This variable can be used by:
 +
  1) LDPC Encoder Definition (via Parity Check) block
 +
  2) LDPC Bit Flip Decoder Definition block
 +
 
 +
The format of alist files is described at:
 +
[http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html]
 +
 
 +
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).
 +
 
 +
As an example, see the file [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/ldpc_alist/n_1800_k_0902_gap_28.alist]], which is used by the FEC example flowgraph [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/examples/ber_curve_gen_ldpc.grc].
 +
 
 +
There is a small library of encoding-ready alist files at [https://github.com/gnuradio/gnuradio/tree/master/gr-fec/ldpc_alist@].
 +
 
 +
To convert a parity check matrix to the appropriate format required for this encoder, use the python functions in [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/python/fec/LDPC/Generate_LDPC_matrix.py].
  
 
== Parameters ==
 
== Parameters ==
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
 
  
; Param 1 (''R'')
+
; File
: Description of parameter, provide any tips or recommended values.  Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
+
: Name of an alist file to use.
  
; Param 2
+
; Gap
: blah blah blah
+
: A property of the matrix being used. For alist files distributed with GNU Radio, this value is specified in the alist filename. The gap is found during the matrix preprocessing algorithm. It is equal to the number of rows in submatrices E, C and D.
  
 
== Example Flowgraph ==
 
== Example Flowgraph ==
  
Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
+
This flowgraph can be found at [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/examples/fecapi_ldpc_encoders.grc]
 +
 
 +
[[File:Fecapi_ldpc_encoders_fg.png|800px]]
  
 
== Source Files ==
 
== Source Files ==
  
 
; C++ files
 
; C++ files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_H_matrix_impl.cc]
  
 
; Header files
 
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_H_matrix_impl.h]
  
 
; Public header files
 
; Public header files
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/include/gnuradio/fec/ldpc_H_matrix.h]
  
 
; Block definition
 
; Block definition
: [https://github.com/gnuradio/gnuradio TODO]
+
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/grc/variable_ldpc_H_matrix_object.block.yml]

Latest revision as of 14:00, 3 December 2020

This block creates a FEC LDPC Parity Check Matrix variable.

This variable can be used by:

 1) LDPC Encoder Definition (via Parity Check) block
 2) LDPC Bit Flip Decoder Definition block

The format of alist files is described at: [1]

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

As an example, see the file [2]], which is used by the FEC example flowgraph [3].

There is a small library of encoding-ready alist files at [4].

To convert a parity check matrix to the appropriate format required for this encoder, use the python functions in [5].

Parameters[edit]

File
Name of an alist file to use.
Gap
A property of the matrix being used. For alist files distributed with GNU Radio, this value is specified in the alist filename. The gap is found during the matrix preprocessing algorithm. It is equal to the number of rows in submatrices E, C and D.

Example Flowgraph[edit]

This flowgraph can be found at [6]

Fecapi ldpc encoders fg.png

Source Files[edit]

C++ files
[7]
Header files
[8]
Public header files
[9]
Block definition
[10]