[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 20/39: fec: LDPC: Updating GRC blocks for t
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 20/39: fec: LDPC: Updating GRC blocks for the recent LDPC classes' updates. |
Date: |
Thu, 15 Oct 2015 21:21:29 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch master
in repository gnuradio.
commit 85b8b10fa45888ee2af52c37268f48ff78a70192
Author: tracierenea <address@hidden>
Date: Sun Feb 22 22:21:04 2015 -0600
fec: LDPC: Updating GRC blocks for the recent LDPC classes' updates.
---
gr-fec/grc/fec_block_tree.xml | 2 ++
gr-fec/grc/variable_ldpc_R_U_encoder.xml | 8 ++++-
gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml | 10 ++++++
gr-fec/grc/variable_ldpc_bit_flip_decoder.xml | 31 ++++++++++------
...oder.xml => variable_ldpc_gen_mtrx_encoder.xml} | 16 ++++-----
gr-fec/grc/variable_ldpc_gen_mtrx_object.xml | 42 ++++++++++++++++++++++
.../fec/{ldpc_gen_mtrx.cc => ldpc_gen_mtrx.h} | 0
7 files changed, 89 insertions(+), 20 deletions(-)
diff --git a/gr-fec/grc/fec_block_tree.xml b/gr-fec/grc/fec_block_tree.xml
index d81d076..15f8412 100644
--- a/gr-fec/grc/fec_block_tree.xml
+++ b/gr-fec/grc/fec_block_tree.xml
@@ -28,6 +28,7 @@
<block>variable_tpc_encoder_def</block>
<block>variable_dummy_encoder_def</block>
<block>variable_polar_encoder_def</block>
+ <block>variable_ldpc_gen_mtrx_encoder_def</block>
<block>variable_ldpc_R_U_encoder_def</block>
</cat>
<block>fec_extended_encoder</block>
@@ -50,5 +51,6 @@
<block>variable_polar_code_configurator</block>
<block>variable_ldpc_par_chk_mtrx_def</block>
<block>variable_ldpc_R_U_mtrx_def</block>
+ <block>variable_ldpc_gen_mtrx_def</block>
</cat>
</cat>
diff --git a/gr-fec/grc/variable_ldpc_R_U_encoder.xml
b/gr-fec/grc/variable_ldpc_R_U_encoder.xml
index e889adc..56bb99c 100644
--- a/gr-fec/grc/variable_ldpc_R_U_encoder.xml
+++ b/gr-fec/grc/variable_ldpc_R_U_encoder.xml
@@ -62,12 +62,18 @@ self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_R_U_encoder_make($pa
</param>
<param>
- <name>LDPC Parity Check Matrix Object</name>
+ <name>R.U. Matrix ID</name>
<key>parity_check_matrix_object</key>
<value></value>
<type>raw</type>
</param>
<doc>
+This block creates a LDPC R. U. Encoder Definition variable.
+
+R.U. Matrix ID: Provide the ID of a LDPC R. U. Parity Check Matrix
+ variable block.
+
+Richardson and Urbanke describe their encoding method in Appendix A of their
book: Modern Coding Theory (ISBN 978-0-521-85229-6).
</doc>
</block>
diff --git a/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
b/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
index 7fabbed..9a2cbb7 100644
--- a/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
+++ b/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
@@ -34,5 +34,15 @@
<type>int</type>
</param>
<doc>
+This block creates a FEC LDPC R. U. Parity Check Matrix variable.
+
+This variable can be used by:
+ 1) LDPC R. U. Encoder Definition 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).
</doc>
</block>
diff --git a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
index 070574b..793ce37 100644
--- a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
+++ b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
@@ -10,12 +10,13 @@
<import>from gnuradio import fec</import>
<var_make>
#if int($ndim())==0 #
-self.$(id) = $(id) =
fec.ldpc_bit_flip_decoder.make($parity_check_matrix_object, $max_iterations)
+self.$(id) = $(id) = fec.ldpc_bit_flip_decoder.make($matrix_object,
$max_iterations)
#else if int($ndim())==1 #
-self.$(id) = $(id) = map((lambda a:
fec.ldpc_bit_flip_decoder.make($parity_check_matrix_object, $max_iterations)),
range(0,$dim1)) #slurp
+self.$(id) = $(id) = map((lambda a:
fec.ldpc_bit_flip_decoder.make($matrix_object, $max_iterations)),
range(0,$dim1)) #slurp
#else
-self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_bit_flip_decoder.make($parity_check_matrix_object, $max_iterations)),
range(0,$dim2))), range(0,$dim1)) #slurp
-#end if</var_make>
+self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_bit_flip_decoder.make($matrix_object, $max_iterations)),
range(0,$dim2))), range(0,$dim1)) #slurp
+#end if
+</var_make>
<make></make>
<param>
@@ -62,19 +63,27 @@ self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_bit_flip_decoder.mak
</param>
<param>
- <name>LDPC Parity Check Matrix Object</name>
- <key>parity_check_matrix_object</key>
- <value></value>
- <type>raw</type>
- </param>
-
- <param>
<name>Max Iterations</name>
<key>max_iterations</key>
<value>100</value>
<type>int</type>
</param>
+ <param>
+ <name>LDPC FEC Matrix ID</name>
+ <key>matrix_object</key>
+ <type>raw</type>
+ </param>
+
<doc>
+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 Parity Check Matrix variable, or
+ 2) LDPC Generator Matrix variable
+
+Be sure to specify the same matrix ID as the matrix that was used for encoding.
+
+Max iterations may be increased from 100 for possibly better performance, but
significantly higher number of iterations may slow things down.
</doc>
</block>
diff --git a/gr-fec/grc/variable_ldpc_R_U_encoder.xml
b/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
similarity index 70%
copy from gr-fec/grc/variable_ldpc_R_U_encoder.xml
copy to gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
index e889adc..6162165 100644
--- a/gr-fec/grc/variable_ldpc_R_U_encoder.xml
+++ b/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
@@ -1,20 +1,20 @@
<?xml version="1.0"?>
<!--
###################################################
-# FEC LDPC RICHARDSON URBANKE ENCODER
+# FEC LDPC GENERATOR MATRIX ENCODER
###################################################
-->
<block>
- <name>LDPC R. U. Encoder Definition</name>
- <key>variable_ldpc_R_U_encoder_def</key>
+ <name>LDPC Generator Matrix Encoder Definition</name>
+ <key>variable_ldpc_gen_mtrx_encoder_def</key>
<import>from gnuradio import fec</import>
<var_make>
#if int($ndim())==0 #
-self.$(id) = $(id) = fec.ldpc_R_U_encoder_make($parity_check_matrix_object)
+self.$(id) = $(id) = fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)
#else if int($ndim())==1 #
-self.$(id) = $(id) = map((lambda a:
fec.ldpc_R_U_encoder_make($parity_check_matrix_object)), range(0,$dim1)) #slurp
+self.$(id) = $(id) = map((lambda a:
fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)), range(0,$dim1))
#slurp
#else
-self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_R_U_encoder_make($parity_check_matrix_object)), range(0,$dim2))),
range(0,$dim1)) #slurp
+self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)), range(0,$dim2))),
range(0,$dim1)) #slurp
#end if</var_make>
<make></make>
@@ -62,8 +62,8 @@ self.$(id) = $(id) = map((lambda b: map((lambda a:
fec.ldpc_R_U_encoder_make($pa
</param>
<param>
- <name>LDPC Parity Check Matrix Object</name>
- <key>parity_check_matrix_object</key>
+ <name>LDPC Generator Matrix ID</name>
+ <key>generator_matrix_object</key>
<value></value>
<type>raw</type>
</param>
diff --git a/gr-fec/grc/variable_ldpc_gen_mtrx_object.xml
b/gr-fec/grc/variable_ldpc_gen_mtrx_object.xml
new file mode 100644
index 0000000..23d0567
--- /dev/null
+++ b/gr-fec/grc/variable_ldpc_gen_mtrx_object.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+# FEC LDPC GENERATOR MATRIX OBJECT
+###################################################
+ -->
+<block>
+ <name>LDPC Generator Matrix</name>
+ <key>variable_ldpc_gen_mtrx_def</key>
+ <import>from gnuradio import fec</import>
+ <var_make>self.$(id) = $(id) = fec.ldpc_gen_mtrx($filename)</var_make>
+
+ <make></make>
+
+ <param>
+ <name>Ignore Me</name>
+ <key>value</key>
+ <value>"ok"</value>
+ <type>raw</type>
+ <hide>all</hide>
+ </param>
+
+ <param>
+ <name>File</name>
+ <key>filename</key>
+ <value></value>
+ <type>file_open</type>
+ </param>
+
+ <doc>
+This block creates a LDPC Generator Matrix variable.
+
+This variable can be used by:
+ 1) LDPC Generator Matrix Encoder Definition block
+ 2) LDPC Bit Flip Decoder Definition block
+
+A filename must be provided for a generator matrix in alist format. It must be
in the standard generator matrix format G = [I P], where I is an identity
matrix and P is the parity submatrix.
+
+The format of alist files is described at:
+http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html
+ </doc>
+</block>
diff --git a/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.cc
b/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.h
similarity index 100%
rename from gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.cc
rename to gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.h
- [Commit-gnuradio] [gnuradio] 13/39: fec: LDPC: Renaming class from ldpc_par_chk_mtrx to ldpc_R_U_mtrx, (continued)
- [Commit-gnuradio] [gnuradio] 13/39: fec: LDPC: Renaming class from ldpc_par_chk_mtrx to ldpc_R_U_mtrx, git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 36/39: fec: LDPC: reworking code to make sure API is ok., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 25/39: fec: LDPC: Moving alist files to a more global place; updating example., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 04/39: fec: LDPC: Classes for LDPC encoder., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 02/39: fec: LDPC: Adding framework for bit flip decoder., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 29/39: fec: LDPC: Fixes GRC files for BER curve examples., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 31/39: fec: LDPC: massive code clean up and change., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 17/39: fec: LDPC: updates to the 3 LDPC-related matrix classes., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 08/39: fec: LDPC: Adding 3 LDPC-related xml files for GRC., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 14/39: fec: LDPC: Reducing complexity of encoder by adding back solve., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 20/39: fec: LDPC: Updating GRC blocks for the recent LDPC classes' updates.,
git <=
- [Commit-gnuradio] [gnuradio] 33/39: fec: LDPC: placeholder to remind us to better document the Python functions., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 23/39: fec: LDPC: Finishing encoder's work() function and updating matrix class., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 37/39: fec: LDPC: fixed issue with bit_flip_decoder., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 27/39: fec: LDPC: Adding doxygen tags + more documentation to header files., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 24/39: fec: LDPC: Adding capability to provide H matrix for encoding/decoding., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 21/39: fec: LDPC: Workaround for swig issues, updating examples., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 07/39: fec: LDPC: Adding QA test and alist files., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 10/39: fec: LDPC: Clean up, and adding LDPC to BER curve gen example., git, 2015/10/15