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: