Classes | |
class | constellation_metrics_cf |
Evaluate metrics for use by the Viterbi algorithm. More... | |
class | encoder |
Convolutional encoder. More... | |
class | fsm |
Finite State Machine Specification class. More... | |
class | interleaver |
INTERLEAVER class. More... | |
class | metrics |
Evaluate metrics for use by the Viterbi algorithm. More... | |
class | pccc_decoder_blk |
class | pccc_decoder_combined_blk |
class | pccc_encoder |
PCCC encoder. More... | |
class | permutation |
Permutation. More... | |
class | sccc_decoder_blk |
class | sccc_decoder_combined_blk |
class | sccc_encoder |
SCCC encoder. More... | |
class | siso_combined_f |
class | siso_f |
class | viterbi |
class | viterbi_combined |
Typedefs | |
typedef encoder< std::uint8_t, std::uint8_t > | encoder_bb |
typedef encoder< std::uint8_t, std::int16_t > | encoder_bs |
typedef encoder< std::uint8_t, std::int32_t > | encoder_bi |
typedef encoder< std::int16_t, std::int16_t > | encoder_ss |
typedef encoder< std::int16_t, std::int32_t > | encoder_si |
typedef encoder< std::int32_t, std::int32_t > | encoder_ii |
typedef metrics< std::int16_t > | metrics_s |
typedef metrics< std::int32_t > | metrics_i |
typedef metrics< float > | metrics_f |
typedef metrics< gr_complex > | metrics_c |
typedef pccc_decoder_blk< std::uint8_t > | pccc_decoder_b |
typedef pccc_decoder_blk< std::int16_t > | pccc_decoder_s |
typedef pccc_decoder_blk< std::int32_t > | pccc_decoder_i |
typedef pccc_decoder_combined_blk< float, std::uint8_t > | pccc_decoder_combined_fb |
typedef pccc_decoder_combined_blk< float, std::int16_t > | pccc_decoder_combined_fs |
typedef pccc_decoder_combined_blk< float, std::int32_t > | pccc_decoder_combined_fi |
typedef pccc_decoder_combined_blk< gr_complex, std::uint8_t > | pccc_decoder_combined_cb |
typedef pccc_decoder_combined_blk< gr_complex, std::int16_t > | pccc_decoder_combined_cs |
typedef pccc_decoder_combined_blk< gr_complex, std::int32_t > | pccc_decoder_combined_ci |
typedef pccc_encoder< std::uint8_t, std::uint8_t > | pccc_encoder_bb |
typedef pccc_encoder< std::uint8_t, std::int16_t > | pccc_encoder_bs |
typedef pccc_encoder< std::uint8_t, std::int32_t > | pccc_encoder_bi |
typedef pccc_encoder< std::int16_t, std::int16_t > | pccc_encoder_ss |
typedef pccc_encoder< std::int16_t, std::int32_t > | pccc_encoder_si |
typedef pccc_encoder< std::int32_t, std::int32_t > | pccc_encoder_ii |
typedef sccc_decoder_blk< std::uint8_t > | sccc_decoder_b |
typedef sccc_decoder_blk< std::int16_t > | sccc_decoder_s |
typedef sccc_decoder_blk< std::int32_t > | sccc_decoder_i |
typedef sccc_decoder_combined_blk< float, std::uint8_t > | sccc_decoder_combined_fb |
typedef sccc_decoder_combined_blk< float, std::int16_t > | sccc_decoder_combined_fs |
typedef sccc_decoder_combined_blk< float, std::int32_t > | sccc_decoder_combined_fi |
typedef sccc_decoder_combined_blk< gr_complex, std::uint8_t > | sccc_decoder_combined_cb |
typedef sccc_decoder_combined_blk< gr_complex, std::int16_t > | sccc_decoder_combined_cs |
typedef sccc_decoder_combined_blk< gr_complex, std::int32_t > | sccc_decoder_combined_ci |
typedef sccc_encoder< std::uint8_t, std::uint8_t > | sccc_encoder_bb |
typedef sccc_encoder< std::uint8_t, std::int16_t > | sccc_encoder_bs |
typedef sccc_encoder< std::uint8_t, std::int32_t > | sccc_encoder_bi |
typedef sccc_encoder< std::int16_t, std::int16_t > | sccc_encoder_ss |
typedef sccc_encoder< std::uint8_t, std::int32_t > | sccc_encoder_si |
typedef sccc_encoder< std::int32_t, std::int32_t > | sccc_encoder_ii |
typedef viterbi< std::uint8_t > | viterbi_b |
typedef viterbi< std::int16_t > | viterbi_s |
typedef viterbi< std::int32_t > | viterbi_i |
typedef viterbi_combined< std::int16_t, std::uint8_t > | viterbi_combined_sb |
typedef viterbi_combined< std::int16_t, std::int16_t > | viterbi_combined_ss |
typedef viterbi_combined< std::int16_t, std::int32_t > | viterbi_combined_si |
typedef viterbi_combined< std::int32_t, std::uint8_t > | viterbi_combined_ib |
typedef viterbi_combined< std::int32_t, std::int16_t > | viterbi_combined_is |
typedef viterbi_combined< std::int32_t, std::int32_t > | viterbi_combined_ii |
typedef viterbi_combined< float, std::uint8_t > | viterbi_combined_fb |
typedef viterbi_combined< float, std::int16_t > | viterbi_combined_fs |
typedef viterbi_combined< float, std::int32_t > | viterbi_combined_fi |
typedef viterbi_combined< gr_complex, std::uint8_t > | viterbi_combined_cb |
typedef viterbi_combined< gr_complex, std::int16_t > | viterbi_combined_cs |
typedef viterbi_combined< gr_complex, std::int32_t > | viterbi_combined_ci |
Enumerations | |
enum | siso_type_t { TRELLIS_MIN_SUM = 200 , TRELLIS_SUM_PRODUCT } |
Functions | |
bool | dec2base (unsigned int num, int base, std::vector< int > &s) |
change base More... | |
bool | dec2bases (unsigned int num, const std::vector< int > &bases, std::vector< int > &s) |
unsigned int | base2dec (const std::vector< int > &s, int base) |
unsigned int | bases2dec (const std::vector< int > &s, const std::vector< int > &bases) |
template<class T > | |
void | calc_metric (int O, int D, const std::vector< T > &TABLE, const T *input, float *metric, digital::trellis_metric_type_t type) |
void | calc_metric (int O, int D, const std::vector< gr_complex > &TABLE, const gr_complex *input, float *metric, digital::trellis_metric_type_t type) |
float | min (float a, float b) |
float | min_star (float a, float b) |
template<class T > | |
void | viterbi_algorithm (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS, const std::vector< std::vector< int >> &PS, const std::vector< std::vector< int >> &PI, int K, int S0, int SK, const float *in, T *out) |
template<class Ti , class To > | |
void | viterbi_algorithm_combined (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS, const std::vector< std::vector< int >> &PS, const std::vector< std::vector< int >> &PI, int K, int S0, int SK, int D, const std::vector< Ti > &TABLE, digital::trellis_metric_type_t TYPE, const Ti *in, To *out) |
void | siso_algorithm (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS, const std::vector< std::vector< int >> &PS, const std::vector< std::vector< int >> &PI, int K, int S0, int SK, bool POSTI, bool POSTO, float(*p2mymin)(float, float), const float *priori, const float *prioro, float *post) |
template<class T > | |
void | siso_algorithm_combined (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS, const std::vector< std::vector< int >> &PS, const std::vector< std::vector< int >> &PI, int K, int S0, int SK, bool POSTI, bool POSTO, float(*p2mymin)(float, float), int D, const std::vector< T > &TABLE, digital::trellis_metric_type_t TYPE, const float *priori, const T *observations, float *post) |
template<class T > | |
void | sccc_decoder (const fsm &FSMo, int STo0, int SToK, const fsm &FSMi, int STi0, int STiK, const interleaver &INTERLEAVER, int blocklength, int iterations, float(*p2mymin)(float, float), const float *iprioro, T *data) |
template<class Ti , class To > | |
void | sccc_decoder_combined (const fsm &FSMo, int STo0, int SToK, const fsm &FSMi, int STi0, int STiK, const interleaver &INTERLEAVER, int blocklength, int iterations, float(*p2mymin)(float, float), int D, const std::vector< Ti > &TABLE, digital::trellis_metric_type_t METRIC_TYPE, float scaling, const Ti *observations, To *data) |
template<class T > | |
void | pccc_decoder (const fsm &FSM1, int ST10, int ST1K, const fsm &FSM2, int ST20, int ST2K, const interleaver &INTERLEAVER, int blocklength, int iterations, float(*p2mymin)(float, float), const float *cprioro, T *data) |
template<class Ti , class To > | |
void | pccc_decoder_combined (const fsm &FSM1, int ST10, int ST1K, const fsm &FSM2, int ST20, int ST2K, const interleaver &INTERLEAVER, int blocklength, int iterations, float(*p2mymin)(float, float), int D, const std::vector< Ti > &TABLE, digital::trellis_metric_type_t METRIC_TYPE, float scaling, const Ti *observations, To *data) |
template<class T > | |
void | SWAP (T &a, T &b) |
template<class T > | |
void | quicksort_index (std::vector< T > &p, std::vector< int > &index, int left, int right) |
typedef encoder<std::uint8_t, std::uint8_t> gr::trellis::encoder_bb |
typedef encoder<std::uint8_t, std::int32_t> gr::trellis::encoder_bi |
typedef encoder<std::uint8_t, std::int16_t> gr::trellis::encoder_bs |
typedef encoder<std::int32_t, std::int32_t> gr::trellis::encoder_ii |
typedef encoder<std::int16_t, std::int32_t> gr::trellis::encoder_si |
typedef encoder<std::int16_t, std::int16_t> gr::trellis::encoder_ss |
typedef metrics<gr_complex> gr::trellis::metrics_c |
typedef metrics<float> gr::trellis::metrics_f |
typedef metrics<std::int32_t> gr::trellis::metrics_i |
typedef metrics<std::int16_t> gr::trellis::metrics_s |
typedef pccc_decoder_blk<std::uint8_t> gr::trellis::pccc_decoder_b |
typedef pccc_decoder_combined_blk<gr_complex, std::uint8_t> gr::trellis::pccc_decoder_combined_cb |
typedef pccc_decoder_combined_blk<gr_complex, std::int32_t> gr::trellis::pccc_decoder_combined_ci |
typedef pccc_decoder_combined_blk<gr_complex, std::int16_t> gr::trellis::pccc_decoder_combined_cs |
typedef pccc_decoder_combined_blk<float, std::uint8_t> gr::trellis::pccc_decoder_combined_fb |
typedef pccc_decoder_combined_blk<float, std::int32_t> gr::trellis::pccc_decoder_combined_fi |
typedef pccc_decoder_combined_blk<float, std::int16_t> gr::trellis::pccc_decoder_combined_fs |
typedef pccc_decoder_blk<std::int32_t> gr::trellis::pccc_decoder_i |
typedef pccc_decoder_blk<std::int16_t> gr::trellis::pccc_decoder_s |
typedef pccc_encoder<std::uint8_t, std::uint8_t> gr::trellis::pccc_encoder_bb |
typedef pccc_encoder<std::uint8_t, std::int32_t> gr::trellis::pccc_encoder_bi |
typedef pccc_encoder<std::uint8_t, std::int16_t> gr::trellis::pccc_encoder_bs |
typedef pccc_encoder<std::int32_t, std::int32_t> gr::trellis::pccc_encoder_ii |
typedef pccc_encoder<std::int16_t, std::int32_t> gr::trellis::pccc_encoder_si |
typedef pccc_encoder<std::int16_t, std::int16_t> gr::trellis::pccc_encoder_ss |
typedef sccc_decoder_blk<std::uint8_t> gr::trellis::sccc_decoder_b |
typedef sccc_decoder_combined_blk<gr_complex, std::uint8_t> gr::trellis::sccc_decoder_combined_cb |
typedef sccc_decoder_combined_blk<gr_complex, std::int32_t> gr::trellis::sccc_decoder_combined_ci |
typedef sccc_decoder_combined_blk<gr_complex, std::int16_t> gr::trellis::sccc_decoder_combined_cs |
typedef sccc_decoder_combined_blk<float, std::uint8_t> gr::trellis::sccc_decoder_combined_fb |
typedef sccc_decoder_combined_blk<float, std::int32_t> gr::trellis::sccc_decoder_combined_fi |
typedef sccc_decoder_combined_blk<float, std::int16_t> gr::trellis::sccc_decoder_combined_fs |
typedef sccc_decoder_blk<std::int32_t> gr::trellis::sccc_decoder_i |
typedef sccc_decoder_blk<std::int16_t> gr::trellis::sccc_decoder_s |
typedef sccc_encoder<std::uint8_t, std::uint8_t> gr::trellis::sccc_encoder_bb |
typedef sccc_encoder<std::uint8_t, std::int32_t> gr::trellis::sccc_encoder_bi |
typedef sccc_encoder<std::uint8_t, std::int16_t> gr::trellis::sccc_encoder_bs |
typedef sccc_encoder<std::int32_t, std::int32_t> gr::trellis::sccc_encoder_ii |
typedef sccc_encoder<std::uint8_t, std::int32_t> gr::trellis::sccc_encoder_si |
typedef sccc_encoder<std::int16_t, std::int16_t> gr::trellis::sccc_encoder_ss |
typedef viterbi<std::uint8_t> gr::trellis::viterbi_b |
typedef viterbi_combined<gr_complex, std::uint8_t> gr::trellis::viterbi_combined_cb |
typedef viterbi_combined<gr_complex, std::int32_t> gr::trellis::viterbi_combined_ci |
typedef viterbi_combined<gr_complex, std::int16_t> gr::trellis::viterbi_combined_cs |
typedef viterbi_combined<float, std::uint8_t> gr::trellis::viterbi_combined_fb |
typedef viterbi_combined<float, std::int32_t> gr::trellis::viterbi_combined_fi |
typedef viterbi_combined<float, std::int16_t> gr::trellis::viterbi_combined_fs |
typedef viterbi_combined<std::int32_t, std::uint8_t> gr::trellis::viterbi_combined_ib |
typedef viterbi_combined<std::int32_t, std::int32_t> gr::trellis::viterbi_combined_ii |
typedef viterbi_combined<std::int32_t, std::int16_t> gr::trellis::viterbi_combined_is |
typedef viterbi_combined<std::int16_t, std::uint8_t> gr::trellis::viterbi_combined_sb |
typedef viterbi_combined<std::int16_t, std::int32_t> gr::trellis::viterbi_combined_si |
typedef viterbi_combined<std::int16_t, std::int16_t> gr::trellis::viterbi_combined_ss |
typedef viterbi<std::int32_t> gr::trellis::viterbi_i |
typedef viterbi<std::int16_t> gr::trellis::viterbi_s |
unsigned int gr::trellis::base2dec | ( | const std::vector< int > & | s, |
int | base | ||
) |
unsigned int gr::trellis::bases2dec | ( | const std::vector< int > & | s, |
const std::vector< int > & | bases | ||
) |
void gr::trellis::calc_metric | ( | int | O, |
int | D, | ||
const std::vector< gr_complex > & | TABLE, | ||
const gr_complex * | input, | ||
float * | metric, | ||
digital::trellis_metric_type_t | type | ||
) |
void gr::trellis::calc_metric | ( | int | O, |
int | D, | ||
const std::vector< T > & | TABLE, | ||
const T * | input, | ||
float * | metric, | ||
digital::trellis_metric_type_t | type | ||
) |
bool gr::trellis::dec2base | ( | unsigned int | num, |
int | base, | ||
std::vector< int > & | s | ||
) |
change base
bool gr::trellis::dec2bases | ( | unsigned int | num, |
const std::vector< int > & | bases, | ||
std::vector< int > & | s | ||
) |
float gr::trellis::min | ( | float | a, |
float | b | ||
) |
Referenced by gr::xoroshiro128p_prng::min().
float gr::trellis::min_star | ( | float | a, |
float | b | ||
) |
void gr::trellis::pccc_decoder | ( | const fsm & | FSM1, |
int | ST10, | ||
int | ST1K, | ||
const fsm & | FSM2, | ||
int | ST20, | ||
int | ST2K, | ||
const interleaver & | INTERLEAVER, | ||
int | blocklength, | ||
int | iterations, | ||
float(*)(float, float) | p2mymin, | ||
const float * | cprioro, | ||
T * | data | ||
) |
void gr::trellis::pccc_decoder_combined | ( | const fsm & | FSM1, |
int | ST10, | ||
int | ST1K, | ||
const fsm & | FSM2, | ||
int | ST20, | ||
int | ST2K, | ||
const interleaver & | INTERLEAVER, | ||
int | blocklength, | ||
int | iterations, | ||
float(*)(float, float) | p2mymin, | ||
int | D, | ||
const std::vector< Ti > & | TABLE, | ||
digital::trellis_metric_type_t | METRIC_TYPE, | ||
float | scaling, | ||
const Ti * | observations, | ||
To * | data | ||
) |
void gr::trellis::quicksort_index | ( | std::vector< T > & | p, |
std::vector< int > & | index, | ||
int | left, | ||
int | right | ||
) |
void gr::trellis::sccc_decoder | ( | const fsm & | FSMo, |
int | STo0, | ||
int | SToK, | ||
const fsm & | FSMi, | ||
int | STi0, | ||
int | STiK, | ||
const interleaver & | INTERLEAVER, | ||
int | blocklength, | ||
int | iterations, | ||
float(*)(float, float) | p2mymin, | ||
const float * | iprioro, | ||
T * | data | ||
) |
void gr::trellis::sccc_decoder_combined | ( | const fsm & | FSMo, |
int | STo0, | ||
int | SToK, | ||
const fsm & | FSMi, | ||
int | STi0, | ||
int | STiK, | ||
const interleaver & | INTERLEAVER, | ||
int | blocklength, | ||
int | iterations, | ||
float(*)(float, float) | p2mymin, | ||
int | D, | ||
const std::vector< Ti > & | TABLE, | ||
digital::trellis_metric_type_t | METRIC_TYPE, | ||
float | scaling, | ||
const Ti * | observations, | ||
To * | data | ||
) |
void gr::trellis::siso_algorithm | ( | int | I, |
int | S, | ||
int | O, | ||
const std::vector< int > & | NS, | ||
const std::vector< int > & | OS, | ||
const std::vector< std::vector< int >> & | PS, | ||
const std::vector< std::vector< int >> & | PI, | ||
int | K, | ||
int | S0, | ||
int | SK, | ||
bool | POSTI, | ||
bool | POSTO, | ||
float(*)(float, float) | p2mymin, | ||
const float * | priori, | ||
const float * | prioro, | ||
float * | post | ||
) |
void gr::trellis::siso_algorithm_combined | ( | int | I, |
int | S, | ||
int | O, | ||
const std::vector< int > & | NS, | ||
const std::vector< int > & | OS, | ||
const std::vector< std::vector< int >> & | PS, | ||
const std::vector< std::vector< int >> & | PI, | ||
int | K, | ||
int | S0, | ||
int | SK, | ||
bool | POSTI, | ||
bool | POSTO, | ||
float(*)(float, float) | p2mymin, | ||
int | D, | ||
const std::vector< T > & | TABLE, | ||
digital::trellis_metric_type_t | TYPE, | ||
const float * | priori, | ||
const T * | observations, | ||
float * | post | ||
) |
void gr::trellis::SWAP | ( | T & | a, |
T & | b | ||
) |
void gr::trellis::viterbi_algorithm | ( | int | I, |
int | S, | ||
int | O, | ||
const std::vector< int > & | NS, | ||
const std::vector< int > & | OS, | ||
const std::vector< std::vector< int >> & | PS, | ||
const std::vector< std::vector< int >> & | PI, | ||
int | K, | ||
int | S0, | ||
int | SK, | ||
const float * | in, | ||
T * | out | ||
) |
void gr::trellis::viterbi_algorithm_combined | ( | int | I, |
int | S, | ||
int | O, | ||
const std::vector< int > & | NS, | ||
const std::vector< int > & | OS, | ||
const std::vector< std::vector< int >> & | PS, | ||
const std::vector< std::vector< int >> & | PI, | ||
int | K, | ||
int | S0, | ||
int | SK, | ||
int | D, | ||
const std::vector< Ti > & | TABLE, | ||
digital::trellis_metric_type_t | TYPE, | ||
const Ti * | in, | ||
To * | out | ||
) |