itpp::BCH Class Reference
Communications Module » Forward Error Correcting Codes

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

`#include <itpp/comm/bch.h>`

Inheritance diagram for itpp::BCH:

## 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. More...
| BCH (int in_n, int in_t, bool sys=false)
| Initialize a (n,k)-code that can correct t errors. More...
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. More...
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. More...
virtual bvec | decode (const bvec &coded_bits)
| Decode a bvec of coded data. This function is kept for backward compatibility. Better use. More...
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.

## 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 , and is capable of correcting 2 errors with n = 31 and k = 21.

Definition at line 59 of file bch.h.

## Constructor & Destructor Documentation

## BCH() [1/2]

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

## BCH() [2/2]

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

## decode() [1/3]

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

## decode() [2/3]

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

## decode() [3/3]

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:

- itpp/comm/bch.h
- itpp/comm/bch.cpp

Generated on Sat Sep 30 2017 07:04:09 for IT++ by Doxygen 1.8.13