GNU Radio Manual and C++ API Reference 3.8.5.0
The Free & Open Software Radio Ecosystem
 
Loading...
Searching...
No Matches
viterbi_combined.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2004,2012,2018 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23#ifndef VITERBI_COMBINED_H
24#define VITERBI_COMBINED_H
25
26#include <gnuradio/block.h>
31#include <cstdint>
32
33namespace gr {
34namespace trellis {
35
36/*!
37 * \ingroup trellis_coding_blk
38 */
39template <class IN_T, class OUT_T>
40class TRELLIS_API viterbi_combined : virtual public block
41{
42public:
43 typedef boost::shared_ptr<viterbi_combined<IN_T, OUT_T>> sptr;
44
45 static sptr make(const fsm& FSM,
46 int K,
47 int S0,
48 int SK,
49 int D,
50 const std::vector<IN_T>& TABLE,
52
53 virtual fsm FSM() const = 0;
54 virtual int K() const = 0;
55 virtual int S0() const = 0;
56 virtual int SK() const = 0;
57 virtual int D() const = 0;
58 virtual std::vector<IN_T> TABLE() const = 0;
60
61 virtual void set_FSM(const fsm& FSM) = 0;
62 virtual void set_K(int K) = 0;
63 virtual void set_S0(int S0) = 0;
64 virtual void set_SK(int SK) = 0;
65 virtual void set_D(int D) = 0;
66 virtual void set_TABLE(const std::vector<IN_T>& table) = 0;
68};
69
82
83} /* namespace trellis */
84} /* namespace gr */
85
86#endif /* VITERBI_COMBINED_H */
The abstract base class for all 'terminal' processing blocks.
Definition block.h:72
Finite State Machine Specification class.
Definition fsm.h:45
Definition viterbi_combined.h:41
static sptr make(const fsm &FSM, int K, int S0, int SK, int D, const std::vector< IN_T > &TABLE, digital::trellis_metric_type_t TYPE)
virtual void set_K(int K)=0
virtual std::vector< IN_T > TABLE() const =0
virtual void set_TABLE(const std::vector< IN_T > &table)=0
boost::shared_ptr< viterbi_combined< IN_T, OUT_T > > sptr
Definition viterbi_combined.h:43
virtual void set_FSM(const fsm &FSM)=0
virtual int D() const =0
virtual int SK() const =0
virtual void set_SK(int SK)=0
virtual void set_TYPE(digital::trellis_metric_type_t type)=0
virtual int K() const =0
virtual int S0() const =0
virtual void set_S0(int S0)=0
virtual digital::trellis_metric_type_t TYPE() const =0
virtual fsm FSM() const =0
virtual void set_D(int D)=0
#define TRELLIS_API
Definition gr-trellis/include/gnuradio/trellis/api.h:30
trellis_metric_type_t
Definition metric_type.h:29
viterbi_combined< std::int16_t, std::uint8_t > viterbi_combined_sb
Definition viterbi_combined.h:70
viterbi_combined< std::int32_t, std::int32_t > viterbi_combined_ii
Definition viterbi_combined.h:75
viterbi_combined< float, std::int16_t > viterbi_combined_fs
Definition viterbi_combined.h:77
viterbi_combined< std::int16_t, std::int16_t > viterbi_combined_ss
Definition viterbi_combined.h:71
viterbi_combined< gr_complex, std::int32_t > viterbi_combined_ci
Definition viterbi_combined.h:81
viterbi_combined< std::int32_t, std::uint8_t > viterbi_combined_ib
Definition viterbi_combined.h:73
viterbi_combined< gr_complex, std::uint8_t > viterbi_combined_cb
Definition viterbi_combined.h:79
viterbi_combined< std::int32_t, std::int16_t > viterbi_combined_is
Definition viterbi_combined.h:74
viterbi_combined< float, std::int32_t > viterbi_combined_fi
Definition viterbi_combined.h:78
viterbi_combined< gr_complex, std::int16_t > viterbi_combined_cs
Definition viterbi_combined.h:80
viterbi_combined< std::int16_t, std::int32_t > viterbi_combined_si
Definition viterbi_combined.h:72
viterbi_combined< float, std::uint8_t > viterbi_combined_fb
Definition viterbi_combined.h:76
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition basic_block.h:46