Binary Convolutional rate 1/n class. More...
#include <itpp/comm/convcode.h>
Public Member Functions | |
Convolutional_Code (void) | |
Default constructor - sets (0133,0171) code with tail. | |
virtual | ~Convolutional_Code (void) |
Destructor. | |
void | set_method (const CONVOLUTIONAL_CODE_METHOD method) |
Set encoding and decoding method (Trunc, Tail, or Tailbite) | |
void | set_code (const CONVOLUTIONAL_CODE_TYPE type_of_code, int inverse_rate, int constraint_length) |
Set the code according to built-in tables. | |
void | set_generator_polynomials (const ivec &gen, int constraint_length) |
Set generator polynomials. Given in Proakis integer form. | |
ivec | get_generator_polynomials (void) const |
Get generator polynomials. | |
void | reset () |
Reset encoder and decoder states. | |
virtual void | encode (const bvec &input, bvec &output) |
Encode an input binary vector using specified method (Tail by default) | |
virtual bvec | encode (const bvec &input) |
Encode a bvec of input. | |
void | encode_trunc (const bvec &input, bvec &output) |
Encode a binary vector starting from the previous encoder state. | |
bvec | encode_trunc (const bvec &input) |
void | encode_tail (const bvec &input, bvec &output) |
Encoding that starts and ends in the zero state. | |
bvec | encode_tail (const bvec &input) |
void | encode_tailbite (const bvec &input, bvec &output) |
Encode an input binary vector using tailbiting. | |
bvec | encode_tailbite (const bvec &input) |
void | encode_bit (const bin &input, bvec &output) |
Encode a binary bit starting from the internal encoder state. | |
bvec | encode_bit (const bin &input) |
virtual void | decode (const bvec &coded_bits, bvec &decoded_bits) |
Decode a bvec of coded data. | |
virtual bvec | decode (const bvec &coded_bits) |
Decode a bvec of coded data. | |
virtual void | decode (const vec &received_signal, bvec &output) |
Decode a block of encoded data using specified method (Tail by default) | |
virtual bvec | decode (const vec &received_signal) |
Decode a vec of received data. | |
virtual void | decode_tail (const vec &received_signal, bvec &output) |
Decode a block of encoded data where encode_tail has been used. | |
virtual bvec | decode_tail (const vec &received_signal) |
virtual void | decode_tailbite (const vec &received_signal, bvec &output) |
Decode a block of encoded data where encode_tailbite has been used. | |
virtual bvec | decode_tailbite (const vec &received_signal) |
virtual void | decode_trunc (const vec &received_signal, bvec &output) |
Viterbi decoding using truncation of memory (default = 5*K) | |
virtual bvec | decode_trunc (const vec &received_signal) |
virtual double | get_rate (void) const |
Return rate of code (not including the rate-loss) | |
void | set_start_state (int state) |
Set encoder default start state. | |
void | init_encoder () |
Initialise internal encoder state with start state. Has no effect on Tail and Tailbite methods. | |
int | get_encoder_state (void) const |
Get the current encoder state. | |
void | set_truncation_length (const int length) |
Set memory truncation length. Must be at least K. | |
int | get_truncation_length (void) const |
Get memory truncation length. | |
bool | catastrophic (void) |
Check if catastrophic. Returns true if catastrophic. | |
bool | inverse_tail (const bvec coded_sequence, bvec &input) |
Calculate the inverse sequence. | |
void | distance_profile (ivec &dist_prof, int dmax=100000, bool reverse=false) |
Calculate distance profile. If reverse = true calculate for the reverse code instead. | |
void | calculate_spectrum (Array< ivec > &spectrum, int dmax, int no_terms) |
Calculate spectrum. | |
int | fast (Array< ivec > &spectrum, const int dfree, const int no_terms, const int Cdfree=1000000, const bool test_catastrophic=false) |
Cederwall's fast algorithm. | |
Protected Member Functions | |
int | next_state (const int instate, const int input) |
Next state from instate given the input. | |
int | previous_state (const int state, const int input) |
The previous state from state given the input. | |
void | previous_state (const int state, int &S0, int &S1) |
The previous state from state given the input. | |
int | weight (const int state, const int input) |
The weight of the transition from given state with the input given. | |
void | weight (const int state, int &w0, int &w1) |
The weight of the two paths (input 0 or 1) from given state. | |
int | weight_reverse (const int state, const int input) |
The weight (of the reverse code) of the transition from given state with the input given. | |
void | weight_reverse (const int state, int &w0, int &w1) |
The weight (of the reverse code) of the two paths (input 0 or 1) from given state. | |
bvec | output_reverse (const int state, const int input) |
Output on transition (backwards) with input from state. | |
void | output_reverse (const int state, bvec &zero_output, bvec &one_output) |
Output on transition (backwards) with input from state. | |
void | output_reverse (const int state, int &zero_output, int &one_output) |
Output on transition (backwards) with input from state. | |
void | calc_metric_reverse (const int state, const vec &rx_codeword, double &zero_metric, double &one_metric) |
Calculate delta metrics for 0 and 1 input branches reaching state. | |
void | calc_metric (const vec &rx_codeword, vec &delta_metrics) |
Calculate delta metrics for all possible codewords. | |
int | get_input (const int state) |
Returns the input that results in state, that is the MSB of state. | |
Protected Attributes | |
int | n |
Number of generators. | |
int | K |
Constraint length. | |
int | m |
Memory of the encoder. | |
int | no_states |
Number of states. | |
ivec | gen_pol |
Generator polynomials. | |
ivec | gen_pol_rev |
Generator polynomials for the reverse code. | |
int | encoder_state |
The current encoder state. | |
int | start_state |
The encoder start state. | |
int | trunc_length |
The decoder truncation length. | |
double | rate |
The rate of the code. | |
bvec | xor_int_table |
Auxilary table used by the codec. | |
imat | output_reverse_int |
output in int format for a given state and input | |
CONVOLUTIONAL_CODE_METHOD | cc_method |
encoding and decoding method | |
imat | path_memory |
Path memory (trellis) | |
Array< bool > | visited_state |
Visited states. | |
vec | sum_metric |
Metrics accumulator. | |
int | trunc_ptr |
Truncated path memory pointer. | |
int | trunc_state |
Truncated memory fill state. | |
Related Symbols | |
(Note that these are not member symbols.) | |
ITPP_EXPORT int | reverse_int (int length, int in) |
Reverses the bitrepresentation of in (of size length) and converts to an integer. | |
ITPP_EXPORT int | weight_int (int length, int in) |
Calculate the Hamming weight of the binary representation of in of size length. | |
ITPP_EXPORT int | compare_spectra (ivec v1, ivec v2) |
Compare two distance spectra. Return 1 if v1 is less, 0 if v2 less, and -1 if equal. | |
ITPP_EXPORT int | compare_spectra (ivec v1, ivec v2, vec weight_profile) |
Compare two distance spectra using a weight profile. | |
Binary Convolutional rate 1/n class.
The codes are given as feedforward encoders and given in the Proakis form. That is, the binary generators (K-tuples) are converted to octal integers. Observe that the constraint length (K) is defined as the number of memory cells plus one (as in Proakis).
Encoding is performed with the encode function. The default method for encoding is by adding a tail of K-1 zeros and also assume that the encoder starts in the zero state (the encode_tail() function). Observe that decode() by default also assumes that a tail is added. Both encoding and decoding method can be changed by the set_method() function.
Example of use: (rate 1/3 constraint length K=7 ODS code using BPSK over AWGN)
Comment: ODS-code stand for Optimum Distance Spectrum Code. For details see T. Ottosson, "Coding, Modulation and Multiuser Decoding for DS-CDMA Systems," Ph.d. thesis, Department of Information Theory, Scool of Electrical and Computer Engineering, Chalmers University of Technology, Goteborg 1997.
It is also possible to set the generator polynomials directly using the builtin tables which consists of: Maximum Free Distance (MFD) Codes of rates R=1/2 through R=1/8 and Optimum Distance Spectrum (ODS) Codes of rates R=1/2 through R=1/4.
Definition at line 104 of file convcode.h.
|
inline |
Default constructor - sets (0133,0171) code with tail.
Definition at line 108 of file convcode.h.
Destructor.
Definition at line 114 of file convcode.h.
|
inline |
Set encoding and decoding method (Trunc, Tail, or Tailbite)
Definition at line 117 of file convcode.h.
Referenced by itpp::Punctured_Convolutional_Code::set_method().
void itpp::Convolutional_Code::set_code | ( | const CONVOLUTIONAL_CODE_TYPE | type_of_code, |
int | inverse_rate, | ||
int | constraint_length | ||
) |
Set the code according to built-in tables.
The type_of_code can be either MFD or ODS for maximum free distance codes (according to Proakis) or Optimum Distance Spectrum Codes according to Frenger, Orten and Ottosson.
Definition at line 537 of file convcode.cpp.
References it_assert, and set_generator_polynomials().
Referenced by itpp::Punctured_Convolutional_Code::set_code().
void itpp::Convolutional_Code::set_generator_polynomials | ( | const ivec & | gen, |
int | constraint_length | ||
) |
Set generator polynomials. Given in Proakis integer form.
Definition at line 555 of file convcode.cpp.
References gen_pol, gen_pol_rev, it_error_if, K, m, n, no_states, output_reverse(), output_reverse_int, itpp::pow2i(), rate, reverse_int(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), start_state, sum_metric, trunc_length, trunc_ptr, trunc_state, visited_state, weight_int(), and xor_int_table.
Referenced by set_code(), and itpp::Punctured_Convolutional_Code::set_generator_polynomials().
|
inline |
Get generator polynomials.
Definition at line 134 of file convcode.h.
void itpp::Convolutional_Code::reset | ( | ) |
Reset encoder and decoder states.
Definition at line 605 of file convcode.cpp.
References init_encoder(), start_state, sum_metric, trunc_ptr, trunc_state, and visited_state.
Encode an input binary vector using specified method (Tail by default)
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 622 of file convcode.cpp.
References cc_method, encode_tail(), encode_tailbite(), and encode_trunc().
Encode a bvec of input.
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 143 of file convcode.h.
Encode a binary vector starting from the previous encoder state.
The initial encoder state can be changed using set_start_state() and init_encoder() functions.
Definition at line 642 of file convcode.cpp.
References encoder_state, gen_pol, m, n, itpp::Array< T >::set_size(), itpp::Array< T >::size(), and xor_int_table.
Referenced by encode(), and itpp::Punctured_Convolutional_Code::encode_trunc().
|
inline |
Definition at line 158 of file convcode.h.
Encoding that starts and ends in the zero state.
Encode a binary vector of inputs starting from zero state and also adds a tail of K-1 zeros to force the encoder into the zero state. Well suited for packet transmission.
Definition at line 662 of file convcode.cpp.
References encoder_state, gen_pol, m, n, itpp::Array< T >::set_size(), itpp::Array< T >::size(), and xor_int_table.
Referenced by encode(), and itpp::Punctured_Convolutional_Code::encode_tail().
|
inline |
Definition at line 177 of file convcode.h.
Encode an input binary vector using tailbiting.
In the Tailbiting method the starting state of the encoder is initialised with the last K-1 bits of the input vector. This gives an additional information to the decoder that the starting and ending states are identical, although not known a priori.
Well suited for packet transmission with small packets, because there is no tail overhead as in the Tail method.
Definition at line 692 of file convcode.cpp.
References encoder_state, gen_pol, m, n, itpp::Array< T >::right(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), and xor_int_table.
Referenced by encode(), and itpp::Punctured_Convolutional_Code::encode_tailbite().
|
inline |
Definition at line 200 of file convcode.h.
Encode a binary bit starting from the internal encoder state.
To initialize the encoder state use set_start_state() and init_encoder()
Definition at line 719 of file convcode.cpp.
References encoder_state, gen_pol, m, n, itpp::Array< T >::set_size(), and xor_int_table.
Definition at line 214 of file convcode.h.
Decode a bvec of coded data.
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 735 of file convcode.cpp.
References it_error.
|
virtual |
Decode a bvec of coded data.
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 740 of file convcode.cpp.
References it_error.
Decode a block of encoded data using specified method (Tail by default)
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 750 of file convcode.cpp.
References cc_method, decode_tail(), decode_tailbite(), and decode_trunc().
Decode a vec of received data.
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 228 of file convcode.h.
Decode a block of encoded data where encode_tail has been used.
Thus is assumes a decoder start state of zero and that a tail of K-1 zeros has been added. No memory truncation.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 771 of file convcode.cpp.
References calc_metric(), get_input(), it_error_if, m, itpp::Array< T >::mid(), n, no_states, output_reverse_int, path_memory, previous_state(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), sum_metric, and visited_state.
Referenced by decode(), and itpp::Punctured_Convolutional_Code::decode_tail().
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 243 of file convcode.h.
|
virtual |
Decode a block of encoded data where encode_tailbite has been used.
The decoding algorithm tries all start states, so the decode_tailbite() is
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 879 of file convcode.cpp.
References calc_metric(), get_input(), it_error_if, itpp::Array< T >::mid(), n, no_states, output_reverse_int, path_memory, previous_state(), itpp::Array< T >::size(), sum_metric, and visited_state.
Referenced by decode(), and itpp::Punctured_Convolutional_Code::decode_tailbite().
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 260 of file convcode.h.
Viterbi decoding using truncation of memory (default = 5*K)
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 965 of file convcode.cpp.
References calc_metric(), get_input(), it_error_if, itpp::Array< T >::mid(), itpp::min_index(), n, no_states, output_reverse_int, path_memory, previous_state(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), sum_metric, trunc_length, trunc_ptr, trunc_state, and visited_state.
Referenced by decode(), and itpp::Punctured_Convolutional_Code::decode_trunc().
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 270 of file convcode.h.
Return rate of code (not including the rate-loss)
Implements itpp::Channel_Code.
Reimplemented in itpp::Punctured_Convolutional_Code.
Definition at line 279 of file convcode.h.
|
inline |
Initialise internal encoder state with start state. Has no effect on Tail
and Tailbite
methods.
Definition at line 293 of file convcode.h.
Referenced by reset().
Get the current encoder state.
Definition at line 296 of file convcode.h.
Set memory truncation length. Must be at least K.
Definition at line 300 of file convcode.h.
References it_error_if, and itpp::Array< T >::length().
Get memory truncation length.
Definition at line 307 of file convcode.h.
Check if catastrophic. Returns true if catastrophic.
Definition at line 1090 of file convcode.cpp.
References m, next_state(), no_states, and weight().
Calculate the inverse sequence.
Assumes that encode_tail is used in the encoding process. Returns false if there is an error in the coded sequence (not a valid codeword). Do not check that the tail forces the encoder into the zeroth state.
Definition at line 1053 of file convcode.cpp.
References gen_pol, it_error_if, m, itpp::Array< T >::mid(), n, itpp::Array< T >::size(), and xor_int_table.
void itpp::Convolutional_Code::distance_profile | ( | ivec & | dist_prof, |
int | dmax = 100000 , |
||
bool | reverse = false |
||
) |
Calculate distance profile. If reverse = true calculate for the reverse code instead.
Definition at line 1133 of file convcode.cpp.
References K, m, next_state(), itpp::reverse(), itpp::Array< T >::set_size(), weight(), and weight_reverse().
Referenced by fast().
void itpp::Convolutional_Code::calculate_spectrum | ( | Array< ivec > & | spectrum, |
int | dmax, | ||
int | no_terms | ||
) |
Calculate spectrum.
Calculates both the weight spectrum (Ad) and the information weight spectrum (Cd) and returns it as ivec:s in the 0:th and 1:st component of spectrum, respectively. Suitable for calculating many terms in the spectra (uses an breadth first algorithm). It is assumed that the code is non-catastrophic or else it is a possibility for an eternal loop. dmax = an upper bound on the free distance no_terms = no_terms including the dmax term that should be calculated
Observe that there is a risk that some of the integers are overflow if many terms are calculated in the spectrum.
Definition at line 1217 of file convcode.cpp.
References itpp::elem_mult(), m, next_state(), no_states, itpp::spectrum(), and weight().
int itpp::Convolutional_Code::fast | ( | Array< ivec > & | spectrum, |
const int | dfree, | ||
const int | no_terms, | ||
const int | Cdfree = 1000000 , |
||
const bool | test_catastrophic = false |
||
) |
Cederwall's fast algorithm.
Calculates both the weight spectrum (Ad) and the information weight spectrum (Cd) and returns it as ivec:s in the 0:th and 1:st component of spectrum, respectively. The FAST algorithm is good for calculating only a few terms in the spectrum. If many terms are desired, use calc_spectrum instead. The algorithm returns -1 if the code tested is worse that the input dfree and Cdfree. It returns 0 if the code MAY be catastrophic (assuming that test_catastrophic is true), and returns 1 if everything went right.
dfree
the free distance of the code (or an upper bound) no_terms
including the dfree term that should be calculated Cdfree
is the best value of information weight spectrum found so farObserve that there is a risk that some of the integers are overflow if many terms are calculated in the spectrum.
See IT No. 6, pp. 1146-1159, Nov. 1989 for details.
Definition at line 1299 of file convcode.cpp.
References distance_profile(), K, m, next_state(), itpp::reverse(), itpp::Array< T >::set_size(), itpp::spectrum(), weight(), and weight_reverse().
Next state from instate given the input.
Definition at line 374 of file convcode.h.
Referenced by calculate_spectrum(), itpp::Punctured_Convolutional_Code::calculate_spectrum(), catastrophic(), itpp::Punctured_Convolutional_Code::catastrophic(), distance_profile(), itpp::Punctured_Convolutional_Code::distance_profile(), fast(), and itpp::Punctured_Convolutional_Code::fast().
The previous state from state given the input.
Definition at line 378 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), and decode_trunc().
|
inlineprotected |
The previous state from state given the input.
Definition at line 382 of file convcode.h.
The weight of the transition from given state with the input given.
Definition at line 42 of file convcode.cpp.
References gen_pol, K, m, and n.
Referenced by calculate_spectrum(), catastrophic(), distance_profile(), and fast().
The weight of the two paths (input 0 or 1) from given state.
Definition at line 85 of file convcode.cpp.
The weight (of the reverse code) of the transition from given state with the input given.
Definition at line 64 of file convcode.cpp.
References gen_pol_rev, K, m, and n.
Referenced by distance_profile(), and fast().
The weight (of the reverse code) of the two paths (input 0 or 1) from given state.
Definition at line 109 of file convcode.cpp.
References gen_pol_rev, m, and n.
Output on transition (backwards) with input from state.
Definition at line 132 of file convcode.cpp.
References gen_pol, n, and xor_int_table.
Referenced by set_generator_polynomials().
|
protected |
Output on transition (backwards) with input from state.
Definition at line 150 of file convcode.cpp.
References gen_pol, n, and xor_int_table.
|
protected |
Output on transition (backwards) with input from state.
Definition at line 169 of file convcode.cpp.
References gen_pol, n, and xor_int_table.
|
protected |
Calculate delta metrics for 0 and 1 input branches reaching state.
Definition at line 190 of file convcode.cpp.
References gen_pol, n, and xor_int_table.
|
protected |
Calculate delta metrics for all possible codewords.
Definition at line 213 of file convcode.cpp.
References gen_pol, n, no_states, itpp::pow2i(), itpp::Array< T >::set_size(), and xor_int_table.
Referenced by decode_tail(), decode_tailbite(), and decode_trunc().
Returns the input that results in state, that is the MSB of state.
Definition at line 408 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), and decode_trunc().
|
related |
Reverses the bitrepresentation of in (of size length) and converts to an integer.
Definition at line 1442 of file convcode.cpp.
References itpp::length().
Referenced by set_generator_polynomials().
|
related |
Calculate the Hamming weight of the binary representation of in of size length.
Definition at line 1460 of file convcode.cpp.
References itpp::length().
Referenced by set_generator_polynomials().
|
related |
Compare two distance spectra. Return 1 if v1 is less, 0 if v2 less, and -1 if equal.
Definition at line 1472 of file convcode.cpp.
References it_assert_debug, and itpp::Array< T >::size().
|
related |
Compare two distance spectra using a weight profile.
Return 1 if v1 is less, 0 if v2 less, and -1 if equal.
Definition at line 1492 of file convcode.cpp.
References itpp::Array< T >::size().
|
protected |
Number of generators.
Definition at line 411 of file convcode.h.
Referenced by calc_metric(), calc_metric_reverse(), decode_tail(), itpp::Punctured_Convolutional_Code::decode_tail(), decode_tailbite(), itpp::Punctured_Convolutional_Code::decode_tailbite(), decode_trunc(), itpp::Punctured_Convolutional_Code::decode_trunc(), encode_bit(), encode_tail(), itpp::Punctured_Convolutional_Code::encode_tail(), encode_tailbite(), itpp::Punctured_Convolutional_Code::encode_tailbite(), encode_trunc(), itpp::Punctured_Convolutional_Code::encode_trunc(), inverse_tail(), output_reverse(), output_reverse(), output_reverse(), set_generator_polynomials(), itpp::Punctured_Convolutional_Code::set_puncture_matrix(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight_reverse(), itpp::Punctured_Convolutional_Code::weight_reverse(), weight_reverse(), and itpp::Punctured_Convolutional_Code::weight_reverse().
|
protected |
Constraint length.
Definition at line 413 of file convcode.h.
Referenced by itpp::Punctured_Convolutional_Code::calculate_spectrum(), distance_profile(), fast(), itpp::Punctured_Convolutional_Code::fast(), set_generator_polynomials(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight_reverse(), and itpp::Punctured_Convolutional_Code::weight_reverse().
|
protected |
Memory of the encoder.
Definition at line 415 of file convcode.h.
Referenced by calculate_spectrum(), itpp::Punctured_Convolutional_Code::calculate_spectrum(), catastrophic(), itpp::Punctured_Convolutional_Code::catastrophic(), decode_tail(), distance_profile(), itpp::Punctured_Convolutional_Code::distance_profile(), encode_bit(), encode_tail(), encode_tailbite(), encode_trunc(), fast(), itpp::Punctured_Convolutional_Code::fast(), inverse_tail(), set_generator_polynomials(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight_reverse(), itpp::Punctured_Convolutional_Code::weight_reverse(), weight_reverse(), and itpp::Punctured_Convolutional_Code::weight_reverse().
|
protected |
Number of states.
Definition at line 417 of file convcode.h.
Referenced by calc_metric(), calculate_spectrum(), catastrophic(), decode_tail(), decode_tailbite(), decode_trunc(), and set_generator_polynomials().
|
protected |
Generator polynomials.
Definition at line 419 of file convcode.h.
Referenced by calc_metric(), calc_metric_reverse(), encode_bit(), encode_tail(), encode_tailbite(), encode_trunc(), inverse_tail(), output_reverse(), output_reverse(), output_reverse(), set_generator_polynomials(), weight(), itpp::Punctured_Convolutional_Code::weight(), weight(), and itpp::Punctured_Convolutional_Code::weight().
|
protected |
Generator polynomials for the reverse code.
Definition at line 421 of file convcode.h.
Referenced by set_generator_polynomials(), weight_reverse(), itpp::Punctured_Convolutional_Code::weight_reverse(), weight_reverse(), and itpp::Punctured_Convolutional_Code::weight_reverse().
|
protected |
The current encoder state.
Definition at line 423 of file convcode.h.
Referenced by encode_bit(), encode_tail(), encode_tailbite(), and encode_trunc().
|
protected |
The encoder start state.
Definition at line 425 of file convcode.h.
Referenced by reset(), and set_generator_polynomials().
|
protected |
The decoder truncation length.
Definition at line 427 of file convcode.h.
Referenced by decode_trunc(), and set_generator_polynomials().
|
protected |
The rate of the code.
Definition at line 429 of file convcode.h.
Referenced by set_generator_polynomials(), and itpp::Punctured_Convolutional_Code::set_puncture_matrix().
|
protected |
Auxilary table used by the codec.
Definition at line 431 of file convcode.h.
Referenced by calc_metric(), calc_metric_reverse(), encode_bit(), encode_tail(), encode_tailbite(), encode_trunc(), inverse_tail(), output_reverse(), output_reverse(), output_reverse(), and set_generator_polynomials().
|
protected |
output in int format for a given state and input
Definition at line 433 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), decode_trunc(), and set_generator_polynomials().
|
protected |
encoding and decoding method
Definition at line 435 of file convcode.h.
Referenced by decode(), itpp::Punctured_Convolutional_Code::decode(), encode(), and itpp::Punctured_Convolutional_Code::encode().
|
protected |
Path memory (trellis)
Definition at line 437 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), and decode_trunc().
Visited states.
Definition at line 439 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), decode_trunc(), reset(), and set_generator_polynomials().
|
protected |
Metrics accumulator.
Definition at line 441 of file convcode.h.
Referenced by decode_tail(), decode_tailbite(), decode_trunc(), reset(), and set_generator_polynomials().
|
protected |
Truncated path memory pointer.
Definition at line 443 of file convcode.h.
Referenced by decode_trunc(), reset(), and set_generator_polynomials().
|
protected |
Truncated memory fill state.
Definition at line 445 of file convcode.h.
Referenced by decode_trunc(), reset(), and set_generator_polynomials().
Generated on Mon Jun 10 2024 11:49:34 for IT++ by Doxygen 1.9.8