Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

simthlib::LogMapAlgorithmAbstract Class Reference

#include <mapalgorithm.h>

Inheritance diagram for simthlib::LogMapAlgorithmAbstract:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 LogMapAlgorithmAbstract (std::auto_ptr< Trellis > usedTrellis)
virtual ~LogMapAlgorithmAbstract ()
virtual void softout4Output (const simth::LlvSeq &metr, simth::LlrSeq *softout, const simth::LlrSeq *apri)
virtual void softout4Input (const simth::LlvSeq &metr, simth::LlrSeq *softout, const simth::LlrSeq *apri)
virtual void decode (const simth::LlvSeq &metr, simth::BitSeq *decodedData, const simth::LlrSeq *apri)

Protected Member Functions

double sigma ()
void forwardrecursion (const simth::LlvSeq &channelMetr, const simth::LlrSeq *apri=NULL)
std::vector< double > backwardrecursion (const int endState=0)
void initialize_alpha ()
void initialize_beta ()
void set_gammas (simth::LlvSeq &metr, simth::LlrSeq *apri)
virtual void set_alpha (const int index)=0
virtual double set_beta (const int index)=0
virtual void calculate_llr (simth::LlrSeq *softout)=0
virtual double calculate_gamma (double metricValue, int index, const simth::LlrSeq *apri)=0
virtual double calculate_beta (const std::vector< double > *beta, const std::vector< double > *gamma, const int t, const int l, const int ms)=0

Protected Attributes

simth::Array2d< double > alpha
simth::Array2d< double > beta
simth::Array2d< double > gamma

Detailed Description

Abstract class for the different versions of the MAP algorithm for soft out decoding.

The MAP algorithm calculates for each bit in the sequence a log-likelihood value. This is done by using the following probabilities at a certain point in time:

The MAP algorithm has the following steps:

  1. initialize the probability vector alpha
  2. calculate the transition probabilities gamma
  3. calculate recursively the probabilities alpha
  4. initialize the probability vector beta
  5. calculate recursively the probabilities beta
  6. calculate the LLRs

The first three steps are collected in the forward recursion. Steps 4 and 5 are collected in the backward recursion.

This abstract class gives a framework for the different versions of the MAP algorithm. Implemented are the forward and the backward recursion, the structure of these are common between all versions of the MAP algorithm.


Constructor & Destructor Documentation

simthlib::LogMapAlgorithmAbstract::LogMapAlgorithmAbstract std::auto_ptr< Trellis usedTrellis  ) 
 

virtual simthlib::LogMapAlgorithmAbstract::~LogMapAlgorithmAbstract  )  [virtual]
 


Member Function Documentation

std::vector<double> simthlib::LogMapAlgorithmAbstract::backwardrecursion const int  endState = 0  )  [protected]
 

Performs the backward recursion of the MAP algorithm. So the beta values are computed here.

virtual double simthlib::LogMapAlgorithmAbstract::calculate_beta const std::vector< double > *  beta,
const std::vector< double > *  gamma,
const int  t,
const int  l,
const int  ms
[protected, pure virtual]
 

Computes the values for the vector beta, given the knowledge of the next values in beta and the transition probabilities in the vector gamma. t and l gives the indeces in the vectors.

virtual double simthlib::LogMapAlgorithmAbstract::calculate_gamma double  metricValue,
int  index,
const simth::LlrSeq apri
[protected, pure virtual]
 

Computes the transition probabilities gamma depending on the given metric and the apriori information.

virtual void simthlib::LogMapAlgorithmAbstract::calculate_llr simth::LlrSeq softout  )  [protected, pure virtual]
 

Computes the Log-Likelihood Ratio. The LLR values are stored in softout.

virtual void simthlib::LogMapAlgorithmAbstract::decode const simth::LlvSeq metr,
simth::BitSeq decodedData,
const simth::LlrSeq apri
[virtual]
 

Decodes the given soft-information of the the coded bits. This could be useful for example to reduce computational complexity when in the last iteration of a turbo decoding procedure only the hard estimated bits are required.

Implements simthlib::TrellisSoftoutAlgorithm.

void simthlib::LogMapAlgorithmAbstract::forwardrecursion const simth::LlvSeq channelMetr,
const simth::LlrSeq apri = NULL
[protected]
 

Performs the forward recursion of the MAP algorithm. So the alpha values and the gamma values are computed here.

void simthlib::LogMapAlgorithmAbstract::initialize_alpha  )  [protected]
 

Initializes the first ms probabilities of the vector alpha.

void simthlib::LogMapAlgorithmAbstract::initialize_beta  )  [protected]
 

Initializes the first ms probabilities of the vector alpha.

virtual void simthlib::LogMapAlgorithmAbstract::set_alpha const int  index  )  [protected, pure virtual]
 

Sets the alpha values at the given index dependinging on the alpha value of index-1 and the the gamma values that have to be computed by set_gamma().

Implemented in simthlib::MaxLogMap.

virtual double simthlib::LogMapAlgorithmAbstract::set_beta const int  index  )  [protected, pure virtual]
 

Set the alpha values at the given index, due to the beta value of index-1 and the the gamma values that have to be computed by set_gamma().

void simthlib::LogMapAlgorithmAbstract::set_gammas simth::LlvSeq metr,
simth::LlrSeq apri
[protected]
 

Computes all gamma values depending on the given channel and aprior softinput information.

double simthlib::LogMapAlgorithmAbstract::sigma  )  [inline, protected]
 

Returns sigma_, the mean noise rate.

virtual void simthlib::LogMapAlgorithmAbstract::softout4Input const simth::LlvSeq metr,
simth::LlrSeq softout,
const simth::LlrSeq apri
[virtual]
 

Computes soft-output information for the input of the decoding algorithm, i.e. the coded bits.

Implements simthlib::TrellisSoftoutAlgorithm.

virtual void simthlib::LogMapAlgorithmAbstract::softout4Output const simth::LlvSeq metr,
simth::LlrSeq softout,
const simth::LlrSeq apri
[virtual]
 

Computes soft-output information for the output of the decoding algorithm, i.e. the information bits.

Implements simthlib::TrellisSoftoutAlgorithm.


Member Data Documentation

simth::Array2d<double> simthlib::LogMapAlgorithmAbstract::alpha [protected]
 

simth::Array2d<double> simthlib::LogMapAlgorithmAbstract::beta [protected]
 

simth::Array2d<double> simthlib::LogMapAlgorithmAbstract::gamma [protected]
 


Generated on Tue Aug 9 14:38:27 2005 for simtheticlib by  doxygen 1.4.1