commit-gnuradio
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]