Finite State Machine Specification class.
More...
#include <gnuradio/trellis/fsm.h>
|
| 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...
|
|
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.
◆ 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
-
I | The number of possible input symbols. |
S | The number of possible FSM states. |
O | The number of possible output symbols. |
NS | A mapping from (current state, input symbol) to next state. next_state = NS[current_state * I + input_symbol] |
OS | A 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
-
◆ 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
-
◆ fsm() [6/10]
gr::trellis::fsm::fsm |
( |
int |
mod_size, |
|
|
int |
ch_length |
|
) |
| |
Creates an FSMS describing ISI.
- Parameters
-
mod_size | modulation size |
ch_length | channel 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) |
M | alphabet size |
L | pulse 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
-
FSM1 | first FSMS |
FSM2 | second 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
-
FSMo | outer FSMS |
FSMi | inner FSMS |
serial | set 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
-
FSM | Original FSMs |
n | Number of stages. |
◆ 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
-
◆ 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
-
filename | filename |
number_stages | ???? |
The documentation for this class was generated from the following file: