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: