Editing LDPC Parity Check Matrix

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 
[[Category:Block Docs]]
 
[[Category:Block Docs]]
This block creates a FEC LDPC Parity Check Matrix variable.
+
[[Category:Stub Docs]]
 +
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.
  
This variable can be used by:
+
As this is a basic template, it's also in the [[:Category:Stub_Docs|"Stub Docs category"]]. Please improve it.
  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>
  
; File
+
; Param 1 (''R'')
: Name of an alist file to use.
+
: 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).
  
; Gap
+
; Param 2
: 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.
+
: blah blah blah
  
 
== Example Flowgraph ==
 
== Example Flowgraph ==
Line 34: Line 23:
  
 
; C++ files
 
; C++ files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_H_matrix_impl.cc]
+
: [https://github.com/gnuradio/gnuradio TODO]
  
 
; Header files
 
; Header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/lib/ldpc_H_matrix_impl.h]
+
: [https://github.com/gnuradio/gnuradio TODO]
  
 
; Public header files
 
; Public header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/include/gnuradio/fec/ldpc_H_matrix.h]
+
: [https://github.com/gnuradio/gnuradio TODO]
  
 
; Block definition
 
; Block definition
: [https://github.com/gnuradio/gnuradio/blob/master/gr-fec/grc/variable_ldpc_H_matrix_object.block.yml]
+
: [https://github.com/gnuradio/gnuradio TODO]

Please note that all contributions to GNU Radio are considered to be released under the Creative Commons Attribution-ShareAlike (see GNU Radio:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)