44 Viterbi_Decoder(int32_t KK, int32_t nn, int32_t LL,
const std::array<int32_t, 2>& g);
52 void decode(std::vector<int32_t>& output_u_int,
const std::vector<float>& input_c);
63 void nsc_transit(std::vector<int32_t>& output_p,
64 std::vector<int32_t>& trans_p,
73 float Gamma(int32_t symbol)
const;
85 int32_t parity_counter(int32_t symbol, int32_t length)
const;
100 int32_t nsc_enc_bit(int32_t* state_out_p,
102 int32_t state_in)
const;
104 std::vector<float> d_prev_section{};
105 std::vector<float> d_next_section{};
107 std::vector<float> d_rec_array{};
108 std::vector<float> d_metric_c{};
109 std::vector<int32_t> d_prev_bit{};
110 std::vector<int32_t> d_prev_state{};
111 std::array<int32_t, 2> d_g{};
113 std::vector<int32_t> d_out0;
114 std::vector<int32_t> d_out1;
115 std::vector<int32_t> d_state0;
116 std::vector<int32_t> d_state1;
118 float d_MAXLOG = 1e7;
125 int32_t d_number_symbols{};
Viterbi_Decoder(int32_t KK, int32_t nn, int32_t LL, const std::array< int32_t, 2 > &g)
Constructor of a Viterbi decoder.
void decode(std::vector< int32_t > &output_u_int, const std::vector< float > &input_c)
Uses the Viterbi algorithm to perform hard-decision decoding of a convolutional code.