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

Class for binary, narrow-sense BCH codes. More...

#include <itpp/comm/bch.h>

Inheritance diagram for itpp::BCH:
itpp::Channel_Code

Public Member Functions

 BCH (int in_n, int in_k, int in_t, const ivec &genpolynom, bool sys=false)
 Initialize a (n,k)-code that can correct t errors.
 
 BCH (int in_n, int in_t, bool sys=false)
 Initialize a (n,k)-code that can correct t errors.
 
virtual ~BCH ()
 Destructor.
 
virtual void encode (const bvec &uncoded_bits, bvec &coded_bits)
 Encode a bvec of indata.
 
virtual bvec encode (const bvec &uncoded_bits)
 Encode a bvec of indata.
 
virtual bool decode (const bvec &coded_bits, bvec &decoded_message, bvec &cw_isvalid)
 Decode the BCH code bits. Return false if there has been any decoding failure.
 
virtual void decode (const bvec &coded_bits, bvec &decoded_bits)
 Decode a bvec of coded data. This function is kept for backward compatibility. Better use.
 
virtual bvec decode (const bvec &coded_bits)
 Decode a bvec of coded data. This function is kept for backward compatibility. Better use.
 
virtual void decode (const vec &received_signal, bvec &output)
 Decode a vec of received data.
 
virtual bvec decode (const vec &received_signal)
 Decode a vec of received data.
 
virtual double get_rate () const
 Get the code rate.
 
virtual int get_k () const
 Get cardinality of code k.
 
BCHoperator= (const BCH &)
 Dummy assignment operator - MSVC++ warning C4512.
 

Detailed Description

Class for binary, narrow-sense BCH codes.

The notation used is found in S. B. Wicker, "Error control systems for digital communication and storage", Appendix E, Prentice-Hall, 1995.

Example:

BCH bch(31,21,2,ivec("3 5 5 1"))

uses the generator polynomial $g(x) = x^{10} + x^9 + x^8 + x^6 + x^5 + x^3 + 1$, and is capable of correcting 2 errors with n = 31 and k = 21.

Definition at line 59 of file bch.h.

Constructor & Destructor Documentation

itpp::BCH::BCH ( int  in_n,
int  in_k,
int  in_t,
const ivec &  genpolynom,
bool  sys = false 
)

Initialize a (n,k)-code that can correct t errors.

Note
Do not call this constructor with e.g. BCH bch(31, 21, 2, "3 5 5 1") but with BCH bch(31, 21, 2, ivec("3 5 5 1")) instead. Otherwise the complier will complain.

Definition at line 39 of file bch.cpp.

References itpp::oct2bin(), itpp::GFX::set(), and itpp::zeros_i().

itpp::BCH::BCH ( int  in_n,
int  in_t,
bool  sys = false 
)

Initialize a (n,k)-code that can correct t errors.

Author
Stephan Ludwig

The generator polynomial is automatically generated from the (n, t) parameters of the BCH code. The constructor generates the generator polynomial (and determines k) according to the method described in:

[Wic95] S. B. Wicker, "Error control systems for digital communication and storage", Prentice-Hall, 1995

Definition at line 51 of file bch.cpp.

References itpp::GFX::get_true_degree(), itpp::int2bits(), it_assert, itpp::length(), itpp::Array< T >::length(), itpp::GFX::set(), itpp::Array< T >::set_size(), and itpp::zeros_i().

Member Function Documentation

bool itpp::BCH::decode ( const bvec &  coded_bits,
bvec &  decoded_message,
bvec &  cw_isvalid 
)
virtual

Decode the BCH code bits. Return false if there has been any decoding failure.

The coded_bits are block-wise decoded into decoded_message messages. If there has been any decoding failure, the function will return false. If this happened in the n-th block, then cw_isvalid(n) will be set to false (zero-indexed). In case of a systematic code the systematic bits will be extracted and presented in the corresponding block of decoded_message. This is better than just presenting zeros, which is done in case of a decoding failure of non-systematic codes.

Definition at line 208 of file bch.cpp.

References itpp::divgfx(), itpp::floor_i(), and itpp::zeros_b().

Referenced by decode().

void itpp::BCH::decode ( const bvec &  coded_bits,
bvec &  decoded_bits 
)
virtual

Decode a bvec of coded data. This function is kept for backward compatibility. Better use.

bool decode(const bvec &coded_bits, bvec &decoded_message, bvec &cw_isvalid)

.

Implements itpp::Channel_Code.

Definition at line 337 of file bch.cpp.

References decode(), and itpp::zeros_b().

bvec itpp::BCH::decode ( const bvec &  coded_bits)
virtual

Decode a bvec of coded data. This function is kept for backward compatibility. Better use.

bool decode(const bvec &coded_bits, bvec &decoded_message, bvec &cw_isvalid)

.

Implements itpp::Channel_Code.

Definition at line 349 of file bch.cpp.

References decode().


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

Generated on Sat May 25 2013 16:32:29 for IT++ by Doxygen 1.8.2