Systematic LDPC Generator class. More...
#include <itpp/comm/ldpc.h>
Public Member Functions | |
LDPC_Generator_Systematic () | |
Default constructor. | |
LDPC_Generator_Systematic (LDPC_Parity *const H, bool natural_ordering=false, const ivec &ind="") | |
Parametrized constructor. | |
virtual | ~LDPC_Generator_Systematic () |
Virtual destructor. | |
virtual void | encode (const bvec &input, bvec &output) |
Generator specific encode function. | |
ivec | construct (LDPC_Parity *const H, bool natural_ordering=false, const ivec &ind="") |
Construct systematic generator matrix. | |
std::string | get_type () const |
Return generator type. | |
void | mark_initialized () |
Mark generator as initialized. | |
bool | is_initialized () const |
Check if generator is initialized. | |
Protected Member Functions | |
virtual void | save (const std::string &filename) const |
Save generator data to a file. | |
virtual void | load (const std::string &filename) |
Read generator data from a file. | |
Systematic LDPC Generator class.
A generator is basically a dense GF(2) matrix with a constructor that can create the generator matrix from a parity check matrix.
ivec itpp::LDPC_Generator_Systematic::construct | ( | LDPC_Parity *const | H, |
bool | natural_ordering = false , |
||
const ivec & | ind = "" |
||
) |
Construct systematic generator matrix.
This function constructs a systematic generator matrix from a parity check matrix (LDPC_Parity
). The order of the columns is randomized unless otherwise requested via the natural_ordering
parameter.
H | A pointer to the parity check matrix H |
natural_ordering | If this flag is true, the columns are not randomly reordered (no interleaving applied), i.e. the function tries so far as possible to avoid permuting columns at all. The permutation takes place only if absolutely necessary. |
ind | Vector of column indices (variable nodes) to avoid in the systematic part. If this vector is supplied, the algorithm then avoids to use variable nodes corresponding to this index vector as systematic bits. This can be used for example to avoid using variable nodes of a low degree as systematic bits. This parameter is ignored if the natural_ordering flag is set. |
P
on the variable nodes that was necessary to construct a full rank generator. This is the permutation which effectively has been applied to the columns of H
. The k-th column of the original H
is the P(k)-th
column of the rearranged H
.H
. Its columns may be sorted so that it gets the structure where is square and invertible. The computed generator then satisfies . Definition at line 894 of file ldpc.cpp.
References itpp::GF2mat::concatenate_horizontal(), itpp::GF2mat::get(), itpp::LDPC_Parity::get_H(), itpp::LDPC_Parity::get_ncheck(), itpp::LDPC_Parity::get_nvar(), itpp::gf2dense_eye(), itpp::GF2mat::inverse(), it_assert_debug, it_error_if, it_info_debug, itpp::length(), itpp::LDPC_Generator::mark_initialized(), itpp::randu(), itpp::LDPC_Parity::set(), itpp::GF2mat::T_fact(), itpp::GF2mat::T_fact_update_addcol(), itpp::GF2mat::transpose(), and itpp::transpose().
Referenced by LDPC_Generator_Systematic().
Generated on Sat Jul 6 2013 10:54:32 for IT++ by Doxygen 1.8.2