GNU Radio's GSM Package: ViterbiR2O4 Class Reference

GNU Radio's GSM Package

Classes | Public Types | Public Member Functions | List of all members
ViterbiR2O4 Class Reference

`#include <ViterbiR204.h>`

Inheritance diagram for ViterbiR2O4:

## Classes
struct | candStruct

## Public Types
typedef struct ViterbiR2O4::candStruct | vCand

## Public Member Functions
void | vitClear (vCand &v)
unsigned | iRate () const
uint32_t | cMask () const
uint32_t | stateTable (unsigned g, unsigned i) const
unsigned | deferral () const
| ViterbiR2O4 ()
void | initializeStates ()
const vCand * | vstep (uint32_t inSample, const float *probs, const float *iprobs, bool isNotTailBits)
void | encode (const BitVector &in, BitVector &target) const
void | decode (const SoftVector &in, BitVector &target)
int | getBEC ()
Public Member Functions inherited from ViterbiBase
unsigned | applyPoly (uint64_t val, uint64_t poly)
unsigned | applyPoly (uint64_t val, uint64_t poly, unsigned order)

## Detailed Description

Class to represent convolutional coders/decoders of rate 1/2, memory length 4. This is the "workhorse" coder for most GSM channels.

## Member Typedef Documentation

## ◆ vCand

typedef struct ViterbiR2O4::candStruct ViterbiR2O4::vCand

A candidate sequence in a Viterbi decoder. The 32-bit state register can support a deferral of 6 with a 4th-order coder.

## Constructor & Destructor Documentation

## ◆ ViterbiR2O4()

ViterbiR2O4::ViterbiR2O4 | ( |  | ) |

Referenced by deferral().

## Member Function Documentation

## ◆ cMask()

uint32_t ViterbiR2O4::cMask | ( |  | ) | const
| inline

## ◆ decode()

void ViterbiR2O4::decode | ( | const SoftVector & | in,
|  | BitVector & | target
| ) |  |
| virtual

Implements ViterbiBase.

Referenced by deferral().

## ◆ deferral()

unsigned ViterbiR2O4::deferral | ( |  | ) | const
| inline

References decode(), encode(), initializeStates(), ViterbiR2O4(), and vstep().

## ◆ encode()

void ViterbiR2O4::encode | ( | const BitVector & | in,
|  | BitVector & | target
| ) |  | const
| virtual

Implements ViterbiBase.

Referenced by deferral().

## ◆ getBEC()

int ViterbiR2O4::getBEC | ( |  | ) |
| inlinevirtual

Reimplemented from ViterbiBase.

## ◆ initializeStates()

void ViterbiR2O4::initializeStates | ( |  | ) |

Set all cost metrics to zero.

Referenced by deferral().

## ◆ iRate()

unsigned ViterbiR2O4::iRate | ( |  | ) | const
| inline

## ◆ stateTable()

uint32_t ViterbiR2O4::stateTable | ( | unsigned | g,
|  | unsigned | i
| ) |  | const
| inline

## ◆ vitClear()

void ViterbiR2O4::vitClear | ( | vCand & | v | ) |
| inline

Clear a structure.

References ViterbiR2O4::candStruct::bitErrorCnt, ViterbiR2O4::candStruct::cost, ViterbiR2O4::candStruct::iState, and ViterbiR2O4::candStruct::oState.

## ◆ vstep()

const vCand* ViterbiR2O4::vstep | ( | uint32_t | inSample,
|  | const float * | probs,
|  | const float * | iprobs,
|  | bool | isNotTailBits
| ) |  |

Full cycle of the Viterbi algorithm: branch, metrics, prune, select.

Returns
  reference to minimum-cost candidate.

Referenced by deferral().

The documentation for this class was generated from the following file:

- ViterbiR204.h