Reed-Solomon Codes. More...
#include <itpp/comm/reedsolomon.h>
Public Member Functions | |
Reed_Solomon (int in_m, int in_t, bool sys=false, int in_b=1) | |
virtual | ~Reed_Solomon () |
Destructor. | |
virtual void | encode (const bvec &uncoded_bits, bvec &coded_bits) |
Encoder function. | |
virtual bvec | encode (const bvec &uncoded_bits) |
Encoder function. | |
virtual bool | decode (const bvec &coded_bits, const ivec &erasure_positions, bvec &decoded_message, bvec &cw_isvalid) |
Decode the RS code bits. Return false if there has been any decoding failure. | |
virtual bool | decode (const bvec &coded_bits, bvec &decoded_message, bvec &cw_isvalid) |
Decode the RS code bits. Return false if there has been any decoding failure. | |
virtual void | decode (const bvec &coded_bits, bvec &decoded_bits) |
Decoder a bvec of coded data. This function is kept for backward compatibility. Better use. | |
virtual bvec | decode (const bvec &coded_bits) |
Decoder 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 |
Gets the rate of the RS-code. | |
Reed_Solomon & | operator= (const Reed_Solomon &) |
Dummy assignment operator - MSVC++ warning C4512. | |
Protected Attributes | |
GFX | g |
The generator polynomial of the RS code. | |
const bool | systematic |
Whether or not the code is systematic. | |
int | m |
int | t |
int | k |
int | n |
int | q |
int | b |
Reed-Solomon Codes.
Uses the Berlkamp-Massey algorithm for decoding as described in: S. B. Wicker, "Error Control Systems for digital communication and storage," Prentice Hall.
The code is - ary of length capable of correcting errors.
Definition at line 51 of file reedsolomon.h.
itpp::Reed_Solomon::Reed_Solomon | ( | int | in_m, |
int | in_t, | ||
bool | sys = false , |
||
int | in_b = 1 |
||
) |
Class constructor for the - ary, error correcting RS-code. The generator polynomial will be $g(x)={i=0}^{2t-1}(x-^{b+i})$, where $$ is a root of the primitive polynomial of itpp::GF
.
Definition at line 55 of file reedsolomon.cpp.
References b, g, it_assert, k, m, n, itpp::pow2i(), q, itpp::GFX::set(), and t.
|
virtual |
Decode the RS 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.
For erasure decoding the indices of erased positions need to be passed in erasure_positions
as indices to the erased (not bit!).
Definition at line 121 of file reedsolomon.cpp.
References b, itpp::concat(), itpp::divgfx(), itpp::floor_i(), itpp::formal_derivate(), g, it_assert, k, m, itpp::max(), n, itpp::ones_i(), q, itpp::GFX::set_degree(), systematic, t, and itpp::zeros_b().
Referenced by decode().
|
virtual |
Decode the RS 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 278 of file reedsolomon.cpp.
References decode().
|
virtual |
Decoder a bvec
of coded data. This function is kept for backward compatibility. Better use.
.
Implements itpp::Channel_Code.
Definition at line 284 of file reedsolomon.cpp.
References decode(), k, m, and itpp::zeros_b().
|
virtual |
Decoder a bvec
of coded data. This function is kept for backward compatibility. Better use.
.
Implements itpp::Channel_Code.
Definition at line 297 of file reedsolomon.cpp.
References decode().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), encode(), and Reed_Solomon().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), and Reed_Solomon().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), encode(), and Reed_Solomon().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), encode(), and Reed_Solomon().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), encode(), and Reed_Solomon().
|
protected |
Internal encoder/decoder parameters
Definition at line 115 of file reedsolomon.h.
Referenced by decode(), and Reed_Solomon().
Generated on Sat Jul 6 2013 10:54:33 for IT++ by Doxygen 1.8.2