GNU Radio C++ API Reference: gr::trellis::fsm Class Reference

| GNU Radio C++ API Reference 3.10.12.0 The Free & Open Software Radio Ecosystem |

Loading...
Searching...
No Matches
gr::trellis::fsm Class Reference
GNU Radio C++ Signal Processing Blocks » Trellis Coding

Finite State Machine Specification class. More...

`#include <gnuradio/trellis/fsm.h>`

## Public Member Functions
| 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.

## Detailed Description

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.

## Constructor & Destructor Documentation

## ◆ fsm() [1/10]

gr::trellis::fsm::fsm | ( |  | ) |

Constructor to create an uninitialized FSMS.

Referenced by fsm(), fsm(), fsm(), and 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

  name | filename

## ◆ 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

  k | ???
  n | ???
  G | ???

## ◆ 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().

## Member Function Documentation

## ◆ I()

int gr::trellis::fsm::I | ( |  | ) | const
| inline

Referenced by fsm().

## ◆ NS()

const std::vector< int > & gr::trellis::fsm::NS | ( |  | ) | const
| inline

Referenced by fsm().

## ◆ O()

int gr::trellis::fsm::O | ( |  | ) | const
| inline

Referenced by fsm().

## ◆ OS()

const std::vector< int > & gr::trellis::fsm::OS | ( |  | ) | const
| inline

Referenced by fsm().

## ◆ 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

Referenced by fsm().

## ◆ 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

  filename | filename

## ◆ 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:

- fsm.h