00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef INCLUDED_TRELLIS_VITERBI_COMBINED_IS_H
00026 #define INCLUDED_TRELLIS_VITERBI_COMBINED_IS_H
00027
00028 #include "fsm.h"
00029 #include <gr_block.h>
00030 #include "trellis_calc_metric.h"
00031
00032 class trellis_viterbi_combined_is;
00033 typedef boost::shared_ptr<trellis_viterbi_combined_is> trellis_viterbi_combined_is_sptr;
00034
00035 trellis_viterbi_combined_is_sptr trellis_make_viterbi_combined_is (
00036 const fsm &FSM,
00037 int K,
00038 int S0,
00039 int SK,
00040 int D,
00041 const std::vector<int> &TABLE,
00042 trellis_metric_type_t TYPE);
00043
00044
00045
00046
00047
00048 class trellis_viterbi_combined_is : public gr_block
00049 {
00050 fsm d_FSM;
00051 int d_K;
00052 int d_S0;
00053 int d_SK;
00054 int d_D;
00055 std::vector<int> d_TABLE;
00056 trellis_metric_type_t d_TYPE;
00057
00058
00059 friend trellis_viterbi_combined_is_sptr trellis_make_viterbi_combined_is (
00060 const fsm &FSM,
00061 int K,
00062 int S0,
00063 int SK,
00064 int D,
00065 const std::vector<int> &TABLE,
00066 trellis_metric_type_t TYPE);
00067
00068
00069 trellis_viterbi_combined_is (
00070 const fsm &FSM,
00071 int K,
00072 int S0,
00073 int SK,
00074 int D,
00075 const std::vector<int> &TABLE,
00076 trellis_metric_type_t TYPE);
00077
00078
00079 public:
00080 fsm FSM () const { return d_FSM; }
00081 int K () const { return d_K; }
00082 int S0 () const { return d_S0; }
00083 int SK () const { return d_SK; }
00084 int D () const { return d_D; }
00085 std::vector<int> TABLE () const { return d_TABLE; }
00086 trellis_metric_type_t TYPE () const { return d_TYPE; }
00087
00088 void set_TABLE (const std::vector<int> &table);
00089 void forecast (int noutput_items,
00090 gr_vector_int &ninput_items_required);
00091 int general_work (int noutput_items,
00092 gr_vector_int &ninput_items,
00093 gr_vector_const_void_star &input_items,
00094 gr_vector_void_star &output_items);
00095 };
00096
00097 #endif