11#ifndef INCLUDED_TRELLIS_FSM_H
12#define INCLUDED_TRELLIS_FSM_H
46 std::vector<int> d_NS;
50 std::vector<int> d_OS;
53 std::vector<std::vector<int>> d_PS;
59 std::vector<std::vector<int>> d_PI;
64 std::vector<int> d_TMl;
68 std::vector<int> d_TMi;
69 void generate_PS_PI();
96 fsm(
int I,
int S,
int O,
const std::vector<int>& NS,
const std::vector<int>& OS);
115 fsm(
int k,
int n,
const std::vector<int>& G);
124 fsm(
int mod_size,
int ch_length);
165 int I()
const {
return d_I; }
166 int S()
const {
return d_S; }
167 int O()
const {
return d_O; }
168 const std::vector<int>&
NS()
const {
return d_NS; }
169 const std::vector<int>&
OS()
const {
return d_OS; }
170 const std::vector<std::vector<int>>&
PS()
const {
return d_PS; }
171 const std::vector<std::vector<int>>&
PI()
const {
return d_PI; }
172 const std::vector<int>&
TMi()
const {
return d_TMi; }
173 const std::vector<int>&
TMl()
const {
return d_TMl; }
Finite State Machine Specification class.
Definition: fsm.h:33
const std::vector< int > & TMi() const
Definition: fsm.h:172
void write_fsm_txt(std::string filename)
Write the FSMS to a file.
void write_trellis_svg(std::string filename, int number_stages)
Creates an svg image of the trellis representation.
const std::vector< int > & TMl() const
Definition: fsm.h:173
fsm(const fsm &FSM, int n)
Creates an FSMS representing n stages through the original FSM (AKA radix-n FSM).
fsm(const fsm &FSMo, const fsm &FSMi, bool serial)
Creates an FSMS describing the trellis of two serially concatenated FSMs.
const std::vector< std::vector< int > > & PI() const
Definition: fsm.h:171
fsm(int P, int M, int L)
Creates an FSMS describing the trellis for a CPM.
fsm()
Constructor to create an uninitialized FSMS.
const std::vector< std::vector< int > > & PS() const
Definition: fsm.h:170
fsm(const fsm &FSM1, const fsm &FSM2)
Creates an FSMS describing the joint trellis of two FSMs.
const std::vector< int > & OS() const
Definition: fsm.h:169
int I() const
Definition: fsm.h:165
int O() const
Definition: fsm.h:167
int S() const
Definition: fsm.h:166
fsm(int k, int n, const std::vector< int > &G)
Creates an FSMS from the generator matrix of a (n, k) binary convolutional code.
fsm(const fsm &FSM)
Constructor to copy an FSMS.
fsm(int mod_size, int ch_length)
Creates an FSMS describing ISI.
fsm(const char *name)
Constructor to create an FSMS from file contents.
const std::vector< int > & NS() const
Definition: fsm.h:168
fsm(int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS)
Constructor to to create an FSMS.
#define TRELLIS_API
Definition: gr-trellis/include/gnuradio/trellis/api.h:18
GNU Radio logging wrapper.
Definition: basic_block.h:29
#define S(x)
Definition: rpcserver_thrift.h:24