summaryrefslogtreecommitdiff
path: root/gr-fec
diff options
context:
space:
mode:
authortracierenea <tracie.perez@mavs.uta.edu>2016-03-20 21:24:41 -0500
committerJohnathan Corgan <johnathan@corganlabs.com>2016-03-27 06:14:15 -0700
commitf91929b8fc88019e6143145fd5b0ead995d9215a (patch)
tree0b2a4a0c8b6e05f6b154e91b86e0deab5f0ae1c9 /gr-fec
parent3e5cd9a4adc584ab7a83ff1f5cc4c8c18548d8aa (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.xml6
-rw-r--r--gr-fec/grc/variable_ldpc_G_matrix_object.xml2
-rw-r--r--gr-fec/grc/variable_ldpc_H_matrix_object.xml2
-rw-r--r--gr-fec/grc/variable_ldpc_bit_flip_decoder.xml6
-rw-r--r--gr-fec/grc/variable_ldpc_encoder_G.xml7
-rw-r--r--gr-fec/grc/variable_ldpc_encoder_H.xml6
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>