Loading...
Searching...
No Matches
gr::trellis Namespace Reference

## 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
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)

## Typedef Documentation

## encoder_bb

typedef encoder<std::uint8_t, std::uint8_t> gr::trellis::encoder_bb

## encoder_bi

typedef encoder<std::uint8_t, std::int32_t> gr::trellis::encoder_bi

## encoder_bs

typedef encoder<std::uint8_t, std::int16_t> gr::trellis::encoder_bs

## encoder_ii

typedef encoder<std::int32_t, std::int32_t> gr::trellis::encoder_ii

## encoder_si

typedef encoder<std::int16_t, std::int32_t> gr::trellis::encoder_si

## encoder_ss

typedef encoder<std::int16_t, std::int16_t> gr::trellis::encoder_ss

## metrics_c

typedef metrics<gr_complex> gr::trellis::metrics_c

## metrics_f

typedef metrics<float> gr::trellis::metrics_f

## metrics_i

typedef metrics<std::int32_t> gr::trellis::metrics_i

## metrics_s

typedef metrics<std::int16_t> gr::trellis::metrics_s

## pccc_decoder_b

typedef pccc_decoder_blk<std::uint8_t> gr::trellis::pccc_decoder_b

## pccc_decoder_combined_cb

typedef pccc_decoder_combined_blk<gr_complex, std::uint8_t> gr::trellis::pccc_decoder_combined_cb

## pccc_decoder_combined_ci

typedef pccc_decoder_combined_blk<gr_complex, std::int32_t> gr::trellis::pccc_decoder_combined_ci

## pccc_decoder_combined_cs

typedef pccc_decoder_combined_blk<gr_complex, std::int16_t> gr::trellis::pccc_decoder_combined_cs

## pccc_decoder_combined_fb

typedef pccc_decoder_combined_blk<float, std::uint8_t> gr::trellis::pccc_decoder_combined_fb

## pccc_decoder_combined_fi

typedef pccc_decoder_combined_blk<float, std::int32_t> gr::trellis::pccc_decoder_combined_fi

## pccc_decoder_combined_fs

typedef pccc_decoder_combined_blk<float, std::int16_t> gr::trellis::pccc_decoder_combined_fs

## pccc_decoder_i

typedef pccc_decoder_blk<std::int32_t> gr::trellis::pccc_decoder_i

## pccc_decoder_s

typedef pccc_decoder_blk<std::int16_t> gr::trellis::pccc_decoder_s

## pccc_encoder_bb

typedef pccc_encoder<std::uint8_t, std::uint8_t> gr::trellis::pccc_encoder_bb

## pccc_encoder_bi

typedef pccc_encoder<std::uint8_t, std::int32_t> gr::trellis::pccc_encoder_bi

## pccc_encoder_bs

typedef pccc_encoder<std::uint8_t, std::int16_t> gr::trellis::pccc_encoder_bs

## pccc_encoder_ii

typedef pccc_encoder<std::int32_t, std::int32_t> gr::trellis::pccc_encoder_ii

## pccc_encoder_si

typedef pccc_encoder<std::int16_t, std::int32_t> gr::trellis::pccc_encoder_si

## pccc_encoder_ss

typedef pccc_encoder<std::int16_t, std::int16_t> gr::trellis::pccc_encoder_ss

## sccc_decoder_b

typedef sccc_decoder_blk<std::uint8_t> gr::trellis::sccc_decoder_b

## sccc_decoder_combined_cb

typedef sccc_decoder_combined_blk<gr_complex, std::uint8_t> gr::trellis::sccc_decoder_combined_cb

## sccc_decoder_combined_ci

typedef sccc_decoder_combined_blk<gr_complex, std::int32_t> gr::trellis::sccc_decoder_combined_ci

## sccc_decoder_combined_cs

typedef sccc_decoder_combined_blk<gr_complex, std::int16_t> gr::trellis::sccc_decoder_combined_cs

## sccc_decoder_combined_fb

typedef sccc_decoder_combined_blk<float, std::uint8_t> gr::trellis::sccc_decoder_combined_fb

## sccc_decoder_combined_fi

typedef sccc_decoder_combined_blk<float, std::int32_t> gr::trellis::sccc_decoder_combined_fi

## sccc_decoder_combined_fs

typedef sccc_decoder_combined_blk<float, std::int16_t> gr::trellis::sccc_decoder_combined_fs

## sccc_decoder_i

typedef sccc_decoder_blk<std::int32_t> gr::trellis::sccc_decoder_i

## sccc_decoder_s

typedef sccc_decoder_blk<std::int16_t> gr::trellis::sccc_decoder_s

## sccc_encoder_bb

typedef sccc_encoder<std::uint8_t, std::uint8_t> gr::trellis::sccc_encoder_bb

## sccc_encoder_bi

typedef sccc_encoder<std::uint8_t, std::int32_t> gr::trellis::sccc_encoder_bi

## sccc_encoder_bs

typedef sccc_encoder<std::uint8_t, std::int16_t> gr::trellis::sccc_encoder_bs

## sccc_encoder_ii

typedef sccc_encoder<std::int32_t, std::int32_t> gr::trellis::sccc_encoder_ii

## sccc_encoder_si

typedef sccc_encoder<std::uint8_t, std::int32_t> gr::trellis::sccc_encoder_si

## sccc_encoder_ss

typedef sccc_encoder<std::int16_t, std::int16_t> gr::trellis::sccc_encoder_ss

## viterbi_b

typedef viterbi<std::uint8_t> gr::trellis::viterbi_b

## viterbi_combined_cb

typedef viterbi_combined<gr_complex, std::uint8_t> gr::trellis::viterbi_combined_cb

## viterbi_combined_ci

typedef viterbi_combined<gr_complex, std::int32_t> gr::trellis::viterbi_combined_ci

## viterbi_combined_cs

typedef viterbi_combined<gr_complex, std::int16_t> gr::trellis::viterbi_combined_cs

## viterbi_combined_fb

typedef viterbi_combined<float, std::uint8_t> gr::trellis::viterbi_combined_fb

## viterbi_combined_fi

typedef viterbi_combined<float, std::int32_t> gr::trellis::viterbi_combined_fi

## viterbi_combined_fs

typedef viterbi_combined<float, std::int16_t> gr::trellis::viterbi_combined_fs

## viterbi_combined_ib

typedef viterbi_combined<std::int32_t, std::uint8_t> gr::trellis::viterbi_combined_ib

## viterbi_combined_ii

typedef viterbi_combined<std::int32_t, std::int32_t> gr::trellis::viterbi_combined_ii

## viterbi_combined_is

typedef viterbi_combined<std::int32_t, std::int16_t> gr::trellis::viterbi_combined_is

## viterbi_combined_sb

typedef viterbi_combined<std::int16_t, std::uint8_t> gr::trellis::viterbi_combined_sb

## viterbi_combined_si

typedef viterbi_combined<std::int16_t, std::int32_t> gr::trellis::viterbi_combined_si

## viterbi_combined_ss

typedef viterbi_combined<std::int16_t, std::int16_t> gr::trellis::viterbi_combined_ss

## viterbi_i

typedef viterbi<std::int32_t> gr::trellis::viterbi_i

## viterbi_s

typedef viterbi<std::int16_t> gr::trellis::viterbi_s

## Enumeration Type Documentation

## siso_type_t

enum gr::trellis::siso_type_t

Enumerator
TRELLIS_MIN_SUM |
TRELLIS_SUM_PRODUCT |

## Function Documentation

## base2dec()

unsigned int gr::trellis::base2dec | ( | const std::vector< int > & | s,
|  | int | base )

## bases2dec()

unsigned int gr::trellis::bases2dec | ( | const std::vector< int > & | s,
|  | const std::vector< int > & | bases )

## calc_metric() [1/2]

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 )

References D.

## calc_metric() [2/2]

template<class T>

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 )

References D.

## dec2base()

bool gr::trellis::dec2base | ( | unsigned int | num,
|  | int | base,
|  | std::vector< int > & | s )

change base

## dec2bases()

bool gr::trellis::dec2bases | ( | unsigned int | num,
|  | const std::vector< int > & | bases,
|  | std::vector< int > & | s )

## min()

float gr::trellis::min | ( | float | a,
|  | float | b )

## min_star()

float gr::trellis::min_star | ( | float | a,
|  | float | b )

## pccc_decoder()

template<class T>

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(* | p2mymin )(float, float),
|  | const float * | cprioro,
|  | T * | data )

## pccc_decoder_combined()

template<class Ti, class To>

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(* | p2mymin )(float, float),
|  | int | D,
|  | const std::vector< Ti > & | TABLE,
|  | digital::trellis_metric_type_t | METRIC_TYPE,
|  | float | scaling,
|  | const Ti * | observations,
|  | To * | data )

References D.

## sccc_decoder()

template<class T>

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(* | p2mymin )(float, float),
|  | const float * | iprioro,
|  | T * | data )

## sccc_decoder_combined()

template<class Ti, class To>

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(* | p2mymin )(float, float),
|  | int | D,
|  | const std::vector< Ti > & | TABLE,
|  | digital::trellis_metric_type_t | METRIC_TYPE,
|  | float | scaling,
|  | const Ti * | observations,
|  | To * | data )

References D.

## siso_algorithm()

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(* | p2mymin )(float, float),
|  | const float * | priori,
|  | const float * | prioro,
|  | float * | post )

References S.

## siso_algorithm_combined()

template<class T>

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(* | p2mymin )(float, float),
|  | int | D,
|  | const std::vector< T > & | TABLE,
|  | digital::trellis_metric_type_t | TYPE,
|  | const float * | priori,
|  | const T * | observations,
|  | float * | post )

References D, and S.

## viterbi_algorithm()

template<class T>

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 )

References S.

## viterbi_algorithm_combined()

template<class Ti, class To>

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 )

References D, and S.