diff options
author | tracierenea <tracie.perez@mavs.uta.edu> | 2016-03-20 21:24:41 -0500 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2016-03-27 06:14:15 -0700 |
commit | f91929b8fc88019e6143145fd5b0ead995d9215a (patch) | |
tree | 0b2a4a0c8b6e05f6b154e91b86e0deab5f0ae1c9 /gr-fec | |
parent | 3e5cd9a4adc584ab7a83ff1f5cc4c8c18548d8aa (diff) |
gr-fec: update/add documentation for LDPC GRC blocks.
Diffstat (limited to 'gr-fec')
-rw-r--r-- | gr-fec/grc/ldpc_decoder_def_list.xml | 6 | ||||
-rw-r--r-- | gr-fec/grc/variable_ldpc_G_matrix_object.xml | 2 | ||||
-rw-r--r-- | gr-fec/grc/variable_ldpc_H_matrix_object.xml | 2 | ||||
-rw-r--r-- | gr-fec/grc/variable_ldpc_bit_flip_decoder.xml | 6 | ||||
-rw-r--r-- | gr-fec/grc/variable_ldpc_encoder_G.xml | 7 | ||||
-rw-r--r-- | gr-fec/grc/variable_ldpc_encoder_H.xml | 6 |
6 files changed, 20 insertions, 9 deletions
diff --git a/gr-fec/grc/ldpc_decoder_def_list.xml b/gr-fec/grc/ldpc_decoder_def_list.xml index 8304e037bf..007f85505c 100644 --- a/gr-fec/grc/ldpc_decoder_def_list.xml +++ b/gr-fec/grc/ldpc_decoder_def_list.xml @@ -78,6 +78,10 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: fec.ldpc_decoder.make($fil </param> <doc> - This block does some kind of ldpc +This is a soft-decision decoder that uses belief propagation (also known as message passing) that is described at: + +www.cs.toronto.edu/~radford/ftp/LDPC-2012-02-11/decoding.html + +Designed for a memoryless AWGN channel, it assumes a noise variance of the value specified for sigma. </doc> </block> diff --git a/gr-fec/grc/variable_ldpc_G_matrix_object.xml b/gr-fec/grc/variable_ldpc_G_matrix_object.xml index cd6b02c718..cd9360c7f7 100644 --- a/gr-fec/grc/variable_ldpc_G_matrix_object.xml +++ b/gr-fec/grc/variable_ldpc_G_matrix_object.xml @@ -32,7 +32,7 @@ This block creates a LDPC Generator Matrix variable. This variable can be used by: - 1) LDPC Generator Matrix Encoder Definition block + 1) LDPC Encoder Definition (via Generator) block 2) LDPC Bit Flip Decoder Definition block Provide an alist file, which contains a Generator matrix, G, in the standard format G = [I P], where I is an identity matrix and P is the parity submatrix. diff --git a/gr-fec/grc/variable_ldpc_H_matrix_object.xml b/gr-fec/grc/variable_ldpc_H_matrix_object.xml index 81476d6617..1bfb6be060 100644 --- a/gr-fec/grc/variable_ldpc_H_matrix_object.xml +++ b/gr-fec/grc/variable_ldpc_H_matrix_object.xml @@ -38,7 +38,7 @@ This block creates a FEC LDPC Parity Check Matrix variable. This variable can be used by: - 1) LDPC Encoder Definition block + 1) LDPC Encoder Definition (via Parity Check) block 2) LDPC Bit Flip Decoder Definition block The format of alist files is described at: diff --git a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml index 2b407f360b..dd9dabba92 100644 --- a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml +++ b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml @@ -78,10 +78,8 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: fec.ldpc_bit_flip_decoder.mak This block creates a LDPC Bit Flip Decoder Definition variable. The decoder requires knowledge of the matrix used to create (encode) the codewords. In the LDPC FEC Matrix ID field, input the ID of either a: - 1) LDPC Matrix variable, or - 2) LDPC R. U. Parity Check Matrix variable - -Be sure to specify the same matrix ID as the matrix that was used for encoding. + 1) LDPC Generator Matrix variable, or + 2) LDPC Parity Check Matrix variable Max iterations may be increased from 100 for possibly better performance, but significantly higher number of iterations may slow things down. </doc> diff --git a/gr-fec/grc/variable_ldpc_encoder_G.xml b/gr-fec/grc/variable_ldpc_encoder_G.xml index 74d95fad38..d138fa37bd 100644 --- a/gr-fec/grc/variable_ldpc_encoder_G.xml +++ b/gr-fec/grc/variable_ldpc_encoder_G.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!-- ################################################### -# FEC LDPC GENERATOR MATRIX ENCODER +# FEC LDPC ENCODER DEFINITION (VIA GENERATOR) ################################################### --> @@ -69,4 +69,9 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: fec.ldpc_encoder_make($G)), r <type>raw</type> </param> + <doc> +Given a generator matrix in systematic form, G = [I|P], where I is the identity matrix and P is the parity submatrix, the information word s is encoded into a codeword x via: + +x = G'*s + </doc> </block> diff --git a/gr-fec/grc/variable_ldpc_encoder_H.xml b/gr-fec/grc/variable_ldpc_encoder_H.xml index 403f8097c9..555891b095 100644 --- a/gr-fec/grc/variable_ldpc_encoder_H.xml +++ b/gr-fec/grc/variable_ldpc_encoder_H.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!-- ################################################### -# FEC LDPC RICHARDSON URBANKE ENCODER +# FEC LDPC ENCODER DEFINITION (PARITY CHECK) ################################################### --> <block> @@ -67,5 +67,9 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: fec.ldpc_par_mtrx_encoder_mak <value></value> <type>raw</type> </param> + <doc> +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. + </doc> </block> |