Finite State Machine Specification class.
More...
#include <gnuradio/trellis/fsm.h>
|
| | fsm () |
| | Constructor to create an uninitialized FSMS.
|
| |
| | fsm (const fsm &FSM) |
| | Constructor to copy an FSMS.
|
| |
| | fsm (int I, int S, int O, const std::vector< int > &NS, const std::vector< int > &OS) |
| | Constructor to to create an FSMS.
|
| |
| | fsm (const char *name) |
| | Constructor to create an FSMS from file contents.
|
| |
| | 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 (int mod_size, int ch_length) |
| | Creates an FSMS describing ISI.
|
| |
| | fsm (int P, int M, int L) |
| | Creates an FSMS describing the trellis for a CPM.
|
| |
| | fsm (const fsm &FSM1, const fsm &FSM2) |
| | Creates an FSMS describing the joint trellis of two FSMs.
|
| |
| | fsm (const fsm &FSMo, const fsm &FSMi, bool serial) |
| | Creates an FSMS describing the trellis of two serially concatenated FSMs.
|
| |
| | fsm (const fsm &FSM, int n) |
| | Creates an FSMS representing n stages through the original FSM (AKA radix-n FSM).
|
| |
| 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.
|
| |
| void | write_fsm_txt (std::string filename) |
| | Write the FSMS to a file.
|
| |
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 |
( |
| ) |
|
◆ fsm() [2/10]
| gr::trellis::fsm::fsm |
( |
const fsm & | FSM | ) |
|
Constructor to copy an FSMS.
References fsm().
◆ 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] |
References I(), NS(), O(), OS(), and S().
◆ 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 |
References fsm().
◆ 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 |
References fsm().
◆ 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. |
References fsm().
◆ 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: