GNU Radio's GSM Package
|
#include <ViterbiR204.h>
Classes | |
struct | candStruct |
Derived values. | |
typedef struct ViterbiR2O4::candStruct | vCand |
void | vitClear (vCand &v) |
Survivors and candidates. | |
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 () |
Additional Inherited Members | |
![]() | |
virtual void | encode (const BitVector &in, BitVector &target) const =0 |
virtual void | decode (const SoftVector &in, BitVector &target)=0 |
virtual int | getBEC () |
unsigned | applyPoly (uint64_t val, uint64_t poly) |
unsigned | applyPoly (uint64_t val, uint64_t poly, unsigned order) |
Class to represent convolutional coders/decoders of rate 1/2, memory length 4. This is the "workhorse" coder for most GSM channels.
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.
ViterbiR2O4::ViterbiR2O4 | ( | ) |
|
inline |
|
virtual |
Implements ViterbiBase.
|
inline |
Implements ViterbiBase.
|
inlinevirtual |
Reimplemented from ViterbiBase.
void ViterbiR2O4::initializeStates | ( | ) |
Set all cost metrics to zero.
|
inline |
|
inline |
|
inline |
Clear a structure.
References ViterbiR2O4::candStruct::bitErrorCnt, ViterbiR2O4::candStruct::cost, ViterbiR2O4::candStruct::iState, and ViterbiR2O4::candStruct::oState.
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.