IT++ Logo
Public Member Functions | Protected Member Functions | List of all members
itpp::LDPC_Generator_Systematic Class Reference

Systematic LDPC Generator class. More...

#include <itpp/comm/ldpc.h>

Inheritance diagram for itpp::LDPC_Generator_Systematic:
itpp::LDPC_Generator

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.
 

Detailed Description

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.

Note
Please refer to the tutorials for examples of how to use this class.
Author
Erik G. Larsson and Adam Piatyszek

Definition at line 570 of file ldpc.h.

Member Function Documentation

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.

Parameters
HA pointer to the parity check matrix H
natural_orderingIf 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.
indVector 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.
Returns
This function returns the permutation vector 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.
Note
This function modifies the parity check matrix H. Its columns may be sorted so that it gets the structure $ H = [H_{1} H_{2}] $ where $ H_{2} $ is square and invertible. The computed generator then satisfies $ [H_{1} H_{2}][I; G'] = 0 $.

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().


The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Sat Jul 6 2013 10:54:32 for IT++ by Doxygen 1.8.2