[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 08/39: fec: LDPC: Adding 3 LDPC-related xml
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 08/39: fec: LDPC: Adding 3 LDPC-related xml files for GRC. |
Date: |
Thu, 15 Oct 2015 21:21:26 +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 68bcd7305b51a6aa8bfdc0220da3b5ec9c2763a7
Author: tracierenea <address@hidden>
Date: Sat Jul 12 11:37:22 2014 -0500
fec: LDPC: Adding 3 LDPC-related xml files for GRC.
Also changed constructor for ldpc_par_chk_mtrx to take a filename
string instead of pointer, because I think works better for GRC?
Tried adding these blocks to the example flowgraph ber_curve_gen, and
it runs, but the QT QUI Bercurve sink just displays a plot with points
at 0,0. Still troubleshooting that...
---
gr-fec/grc/fec_block_tree.xml | 3 +
gr-fec/grc/variable_ldpc_R_U_encoder.xml | 73 ++++++++++++++++++++
gr-fec/grc/variable_ldpc_bit_flip_decoder.xml | 80 ++++++++++++++++++++++
gr-fec/grc/variable_parity_check_matrix_object.xml | 38 ++++++++++
gr-fec/include/gnuradio/fec/ldpc_par_chk_mtrx.h | 4 +-
gr-fec/lib/ldpc_par_chk_mtrx.cc | 10 +--
6 files changed, 201 insertions(+), 7 deletions(-)
diff --git a/gr-fec/grc/fec_block_tree.xml b/gr-fec/grc/fec_block_tree.xml
index 65a4fc8..398ab8c 100644
--- a/gr-fec/grc/fec_block_tree.xml
+++ b/gr-fec/grc/fec_block_tree.xml
@@ -17,6 +17,7 @@
<block>variable_dummy_decoder_def</block>
<block>variable_polar_decoder_sc_def</block>
<block>variable_polar_decoder_sc_list_def</block>
+ <block>variable_ldpc_bit_flip_decoder_def</block>
</cat>
<cat>
<name>Encoders</name>
@@ -27,6 +28,7 @@
<block>variable_tpc_encoder_def</block>
<block>variable_dummy_encoder_def</block>
<block>variable_polar_encoder_def</block>
+ <block>variable_ldpc_R_U_encoder_def</block>
</cat>
<block>fec_extended_encoder</block>
<block>fec_extended_async_encoder</block>
@@ -46,5 +48,6 @@
<block>fec_ber_bf</block>
<block>fec_bercurve_generator</block>
<block>variable_polar_code_configurator</block>
+ <block>variable_ldpc_par_chk_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
new file mode 100644
index 0000000..e889adc
--- /dev/null
+++ b/gr-fec/grc/variable_ldpc_R_U_encoder.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+# FEC LDPC RICHARDSON URBANKE ENCODER
+###################################################
+ -->
+<block>
+ <name>LDPC R. U. Encoder Definition</name>
+ <key>variable_ldpc_R_U_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)
+#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
+#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
+#end if</var_make>
+ <make></make>
+
+ <param>
+ <name>Ignore Me</name>
+ <key>value</key>
+ <value>"ok"</value>
+ <type>raw</type>
+ <hide>all</hide>
+ </param>
+
+ <param>
+ <name>Parallelism</name>
+ <key>ndim</key>
+ <value></value>
+ <type>enum</type>
+ <option>
+ <name>0</name>
+ <key>0</key>
+ </option>
+ <option>
+ <name>1</name>
+ <key>1</key>
+ </option>
+ <option>
+ <name>2</name>
+ <key>2</key>
+ </option>
+ </param>
+
+ <param>
+ <name>Dimension 1</name>
+ <key>dim1</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
+ </param>
+
+ <param>
+ <name>Dimension 2</name>
+ <key>dim2</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
+ </param>
+
+ <param>
+ <name>LDPC Parity Check Matrix Object</name>
+ <key>parity_check_matrix_object</key>
+ <value></value>
+ <type>raw</type>
+ </param>
+
+ <doc>
+ </doc>
+</block>
diff --git a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
new file mode 100644
index 0000000..070574b
--- /dev/null
+++ b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+# FEC LDPC BIT FLIP DECODER
+###################################################
+ -->
+<block>
+ <name>LDPC Bit Flip Decoder Definition</name>
+ <key>variable_ldpc_bit_flip_decoder_def</key>
+ <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)
+#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
+#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>
+ <make></make>
+
+ <param>
+ <name>Ignore Me</name>
+ <key>value</key>
+ <value>"ok"</value>
+ <type>raw</type>
+ <hide>all</hide>
+ </param>
+
+ <param>
+ <name>Parallelism</name>
+ <key>ndim</key>
+ <value></value>
+ <type>enum</type>
+ <option>
+ <name>0</name>
+ <key>0</key>
+ </option>
+ <option>
+ <name>1</name>
+ <key>1</key>
+ </option>
+ <option>
+ <name>2</name>
+ <key>2</key>
+ </option>
+ </param>
+
+ <param>
+ <name>Dimension 1</name>
+ <key>dim1</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
+ </param>
+
+ <param>
+ <name>Dimension 2</name>
+ <key>dim2</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
+ </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>
+
+ <doc>
+ </doc>
+</block>
diff --git a/gr-fec/grc/variable_parity_check_matrix_object.xml
b/gr-fec/grc/variable_parity_check_matrix_object.xml
new file mode 100644
index 0000000..11331af
--- /dev/null
+++ b/gr-fec/grc/variable_parity_check_matrix_object.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+# FEC LDPC PARITY CHECK MATRIX OBJECT
+###################################################
+ -->
+<block>
+ <name>LDPC Parity Check Matrix Object</name>
+ <key>variable_ldpc_par_chk_mtrx_def</key>
+ <import>from gnuradio import fec</import>
+ <var_make>self.$(id) = $(id) = fec.ldpc_par_chk_mtrx($filename,
$gap)</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>
+
+ <param>
+ <name>Gap</name>
+ <key>gap</key>
+ <value></value>
+ <type>int</type>
+ </param>
+ <doc>
+ </doc>
+</block>
diff --git a/gr-fec/include/gnuradio/fec/ldpc_par_chk_mtrx.h
b/gr-fec/include/gnuradio/fec/ldpc_par_chk_mtrx.h
index 61bed6e..5b9efea 100644
--- a/gr-fec/include/gnuradio/fec/ldpc_par_chk_mtrx.h
+++ b/gr-fec/include/gnuradio/fec/ldpc_par_chk_mtrx.h
@@ -58,12 +58,12 @@ namespace gr {
gsl_matrix *d_phi_inverse_ptr;
// Read the matrix from a file in alist format
- void read_matrix_from_file(const std::string *);
+ void read_matrix_from_file(const std::string filename);
// Set the submatrix variables needed for encoding
void set_parameters_for_encoding();
public:
- ldpc_par_chk_mtrx(const std::string &filename, unsigned int gap);
+ ldpc_par_chk_mtrx(const std::string filename, unsigned int gap);
// Default constructor, should not be used
ldpc_par_chk_mtrx();
// Get the codeword length n
diff --git a/gr-fec/lib/ldpc_par_chk_mtrx.cc b/gr-fec/lib/ldpc_par_chk_mtrx.cc
index 3045b15..56c14d6 100644
--- a/gr-fec/lib/ldpc_par_chk_mtrx.cc
+++ b/gr-fec/lib/ldpc_par_chk_mtrx.cc
@@ -32,9 +32,9 @@ namespace gr {
namespace fec {
namespace code {
- ldpc_par_chk_mtrx::ldpc_par_chk_mtrx(const std::string &filename,
unsigned int gap)
+ ldpc_par_chk_mtrx::ldpc_par_chk_mtrx(const std::string filename,
unsigned int gap)
{
- read_matrix_from_file(&filename);
+ read_matrix_from_file(filename);
d_gap = gap;
set_parameters_for_encoding();
} // Constructor
@@ -110,7 +110,7 @@ namespace gr {
}
void
- ldpc_par_chk_mtrx::read_matrix_from_file(const std::string *alist_file)
+ ldpc_par_chk_mtrx::read_matrix_from_file(const std::string filename)
{
/* This function reads in an alist file and creates the
corresponding parity check matrix. The format of alist
@@ -120,10 +120,10 @@ namespace gr {
std::ifstream inputFile;
// Open the alist file (needs a C-string)
- inputFile.open((*alist_file).c_str());
+ inputFile.open((filename).c_str());
if (!inputFile) {
std::cout << "There was a problem opening file "
- << *alist_file << " for reading.\n";
+ << filename << " for reading.\n";
exit(1);
}
- [Commit-gnuradio] [gnuradio] 26/39: fec: LDPC: Setting copyright date to current year., (continued)
- [Commit-gnuradio] [gnuradio] 26/39: fec: LDPC: Setting copyright date to current year., git, 2015/10/15
- [Commit-gnuradio] [gnuradio] 38/39: fec: LDPC: added back all QA tests and added a test of ldpc_gen_mtrx_encoder., git, 2015/10/15
- [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 <=
- [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, 2015/10/15
- [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