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  | 
          ( | 
           | ) | 
           | 
        
      
 
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: