Class for binary, narrow-sense BCH codes. More...
#include <itpp/comm/bch.h>
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. | |
| BCH & | operator= (const BCH &) |
| Dummy assignment operator - MSVC++ warning C4512. | |
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:
uses the generator polynomial
, and is capable of correcting 2 errors with n = 31 and k = 21.
| 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.
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.
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().
|
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().
|
virtual |
Decode a bvec of coded data. This function is kept for backward compatibility. Better use.
.
Implements itpp::Channel_Code.
Definition at line 337 of file bch.cpp.
References decode(), and itpp::zeros_b().
|
virtual |
Decode a bvec of coded data. This function is kept for backward compatibility. Better use.
.
Implements itpp::Channel_Code.
Definition at line 349 of file bch.cpp.
References decode().
Generated on Sat May 25 2013 16:32:29 for IT++ by Doxygen 1.8.2