GNU Radio Manual and C++ API Reference  3.8.1.0
The Free & Open Software Radio Ecosystem
gr::trellis::fsm Class Reference

Finite State Machine Specification class. More...

#include <gnuradio/trellis/fsm.h>

Public Member Functions

 fsm ()
 Constructor to create an uninitialized FSMS. More...
 
 fsm (const fsm &FSM)
 Constructor to copy an FSMS. More...
 
 fsm (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS)
 Constructor to to create an FSMS. More...
 
 fsm (const char *name)
 Constructor to create an FSMS from file contents. More...
 
 fsm (int k, int n, const std::vector< int > &G)
 Creates an FSMS from the generator matrix of a (n, k) binary convolutional code. More...
 
 fsm (int mod_size, int ch_length)
 Creates an FSMS describing ISI. More...
 
 fsm (int P, int M, int L)
 Creates an FSMS describing the trellis for a CPM. More...
 
 fsm (const fsm &FSM1, const fsm &FSM2)
 Creates an FSMS describing the joint trellis of two FSMs. More...
 
 fsm (const fsm &FSMo, const fsm &FSMi, bool serial)
 Creates an FSMS describing the trellis of two serially concatenated FSMs. More...
 
 fsm (const fsm &FSM, int n)
 Creates an FSMS representing n stages through the original FSM (AKA radix-n FSM). More...
 
int I () const
 
int S () const
 
int O () const
 
const std::vector< int > & NS () const
 
const std::vector< int > & OS () const
 
const std::vector< std::vector< int > > & PS () const
 
const std::vector< std::vector< int > > & PI () const
 
const std::vector< int > & TMi () const
 
const std::vector< int > & TMl () const
 
void write_trellis_svg (std::string filename, int number_stages)
 Creates an svg image of the trellis representation. More...
 
void write_fsm_txt (std::string filename)
 Write the FSMS to a file. More...
 

Detailed Description

Finite State Machine Specification class.

An instance of this class represents a finite state machine specification (FSMS) rather than the FSM itself. It particular the state of the FSM is not stored within an instance of this class.

Constructor & Destructor Documentation

◆ fsm() [1/10]

gr::trellis::fsm::fsm ( )

Constructor to create an uninitialized FSMS.

◆ fsm() [2/10]

gr::trellis::fsm::fsm ( const fsm FSM)

Constructor to copy an FSMS.

◆ fsm() [3/10]

gr::trellis::fsm::fsm ( int  I,
int  S,
int  O,
const std::vector< int > &  NS,
const std::vector< int > &  OS 
)

Constructor to to create an FSMS.

Parameters
IThe number of possible input symbols.
SThe number of possible FSM states.
OThe number of possible output symbols.
NSA mapping from (current state, input symbol) to next state. next_state = NS[current_state * I + input_symbol]
OSA mapping from (current state, input symbol) to output symbol. output_symbol = OS[current_state * I + input_symbol]

◆ fsm() [4/10]

gr::trellis::fsm::fsm ( const char *  name)

Constructor to create an FSMS from file contents.

Parameters
namefilename

◆ fsm() [5/10]

gr::trellis::fsm::fsm ( int  k,
int  n,
const std::vector< int > &  G 
)

Creates an FSMS from the generator matrix of a (n, k) binary convolutional code.

Parameters
k???
n???
G???

◆ fsm() [6/10]

gr::trellis::fsm::fsm ( int  mod_size,
int  ch_length 
)

Creates an FSMS describing ISI.

Parameters
mod_sizemodulation size
ch_lengthchannel length

◆ fsm() [7/10]

gr::trellis::fsm::fsm ( int  P,
int  M,
int  L 
)

Creates an FSMS describing the trellis for a CPM.

Parameters
P???? h=K/P (relatively prime)
Malphabet size
Lpulse duration

This FSM is based on the paper by B. Rimoldi "A decomposition approach to CPM", IEEE Trans. Info Theory, March 1988 See also my own notes at http://www.eecs.umich.edu/~anastas/docs/cpm.pdf

◆ fsm() [8/10]

gr::trellis::fsm::fsm ( const fsm FSM1,
const fsm FSM2 
)

Creates an FSMS describing the joint trellis of two FSMs.

Parameters
FSM1first FSMS
FSM2second FSMS

◆ fsm() [9/10]

gr::trellis::fsm::fsm ( const fsm FSMo,
const fsm FSMi,
bool  serial 
)

Creates an FSMS describing the trellis of two serially concatenated FSMs.

Parameters
FSMoouter FSMS
FSMiinner FSMS
serialset it to true to distinguish from the previous constructor

◆ fsm() [10/10]

gr::trellis::fsm::fsm ( const fsm FSM,
int  n 
)

Creates an FSMS representing n stages through the original FSM (AKA radix-n FSM).

Parameters
FSMOriginal FSMs
nNumber of stages.

Member Function Documentation

◆ I()

int gr::trellis::fsm::I ( ) const
inline

◆ NS()

const std::vector<int>& gr::trellis::fsm::NS ( ) const
inline

◆ O()

int gr::trellis::fsm::O ( ) const
inline

◆ OS()

const std::vector<int>& gr::trellis::fsm::OS ( ) const
inline

◆ PI()

const std::vector<std::vector<int> >& gr::trellis::fsm::PI ( ) const
inline

◆ PS()

const std::vector<std::vector<int> >& gr::trellis::fsm::PS ( ) const
inline

◆ S()

int gr::trellis::fsm::S ( ) const
inline

◆ TMi()

const std::vector<int>& gr::trellis::fsm::TMi ( ) const
inline

◆ TMl()

const std::vector<int>& gr::trellis::fsm::TMl ( ) const
inline

◆ write_fsm_txt()

void gr::trellis::fsm::write_fsm_txt ( std::string  filename)

Write the FSMS to a file.

Parameters
filenamefilename

◆ write_trellis_svg()

void gr::trellis::fsm::write_trellis_svg ( std::string  filename,
int  number_stages 
)

Creates an svg image of the trellis representation.

Parameters
filenamefilename
number_stages????

The documentation for this class was generated from the following file: