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

simthlib::PunctConvDecoder Class Reference

A punctured convolutional decoder. More...

#include <decoder.h>

Inheritance diagram for simthlib::PunctConvDecoder:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 PunctConvDecoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int codeRateNumerator, int codeRateDenumerator, int mem, int inbits, int outbits)
 PunctConvDecoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int codeRateNumerator, int codeRateDenumerator, int inbitsPerStep, const simth::checkedVector< int > &polynomials, const int recursivePolynomial, bool systematic)
 PunctConvDecoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl)
 PunctConvDecoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, const std::string &puncturingPattern, int inbitsPerStep, const simth::checkedVector< int > &polynomials, const int recursivePolynomial, bool systematic)
virtual ~PunctConvDecoder ()
virtual void updateInputLengths ()
virtual void updateOutputLengths ()
virtual int getDataLength (int codedLength) const
virtual int getCodeLength (int rawLength) const
virtual void decode (const simth::LlrSeq &llr, simth::BitSeq &bsout)
virtual void decode (const simth::BitSeq &bsin, simth::BitSeq &bsout)
virtual void decode (const simth::LlvSeq &llv, simth::BitSeq &bsout)
void setPuncturing (const std::string &newPuncturePattern)

Protected Attributes

PuncturingusedPuncturing

Related Functions

(Note that these are not member functions.)

 propertylist_PunctConvDecoder (not_a_function)

Detailed Description

A punctured convolutional decoder.

This class simulates a convolutional coder. A particular coder is determined by the memory length, the number of input bits and the number of output bits. These parameters are passed as arguments of the constructor.


Constructor & Destructor Documentation

simthlib::PunctConvDecoder::PunctConvDecoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  codeRateNumerator,
int  codeRateDenumerator,
int  mem,
int  inbits,
int  outbits
 

Class constructor.

Parameters:
deviceID ID of this device
system Pointer to parent simulation system
pl Property list of this device
codeRateNumerator FIXME: add doc
codeRateDenumerator FIXME: add doc
mem Memory length of the coder
inbits number of input bits per step
outbits number of output bits per step

simthlib::PunctConvDecoder::PunctConvDecoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  codeRateNumerator,
int  codeRateDenumerator,
int  inbitsPerStep,
const simth::checkedVector< int > &  polynomials,
const int  recursivePolynomial,
bool  systematic
 

simthlib::PunctConvDecoder::PunctConvDecoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl
 

Constructor for factory function

simthlib::PunctConvDecoder::PunctConvDecoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
const std::string &  puncturingPattern,
int  inbitsPerStep,
const simth::checkedVector< int > &  polynomials,
const int  recursivePolynomial,
bool  systematic
 

virtual simthlib::PunctConvDecoder::~PunctConvDecoder  )  [virtual]
 


Member Function Documentation

virtual void simthlib::PunctConvDecoder::decode const simth::LlvSeq llv,
simth::BitSeq bsout
[virtual]
 

Performs a maximum likelihood sequence estimation of the data sequence based on the log-likelihood values of the given (the received) modulation symbols (soft decision decoding)

Reimplemented from simthlib::TrellisDecoder.

virtual void simthlib::PunctConvDecoder::decode const simth::BitSeq bsin,
simth::BitSeq bsout
[virtual]
 

Decodes a bit sequence (hard decision decoding).

Reimplemented from simthlib::TrellisDecoder.

virtual void simthlib::PunctConvDecoder::decode const simth::LlrSeq llr,
simth::BitSeq bsout
[virtual]
 

Decode a (punctured) bit sequence and depuncture it.

Reimplemented from simthlib::TrellisDecoder.

virtual int simthlib::PunctConvDecoder::getCodeLength int  rawLength  )  const [virtual]
 

Returns the length of a coded bit sequence which is generated by the coder from a raw data sequence of the given length.

Parameters:
rawLength length of the data sequence
Returns:
allocated length of the coded sequence

Reimplemented from simthlib::TrellisDecoder.

virtual int simthlib::PunctConvDecoder::getDataLength int  codedLength  )  const [virtual]
 

Returns the length of a data bit sequence which is encoded by the coder from a coded bit sequence of the given length

Parameters:
codedLength length of the coded sequence
Returns:
allocated length of the encoded data sequence

Reimplemented from simthlib::TrellisDecoder.

void simthlib::PunctConvDecoder::setPuncturing const std::string &  newPuncturePattern  ) 
 

virtual void simthlib::PunctConvDecoder::updateInputLengths  )  [virtual]
 

Reimplemented from simthlib::StreamDecoder.

virtual void simthlib::PunctConvDecoder::updateOutputLengths  )  [virtual]
 

Reimplemented from simthlib::StreamDecoder.


Friends And Related Function Documentation

propertylist_PunctConvDecoder not_a_function   )  [related]
 

These are the properties of class PunctConvDecoder . This list is auto-generated from the XML-Devicelist of this device by means of an XSLT transformation script.

Description of this device in the XML file: Punctured binary convolutional decoder. Specify this by the polynomial (e.g. '1' for uncoded transmission and '171 133' for the HiperLAN/2 code) and the puncturing rate.

Note that this class also has the Properties of its base classes. The direct base class is simthlib::ConvDecoder ; direct link to its propertylist should be propertylist_ConvDecoder(). The list below usually includes the properties that have been inherited from the base classes; the properties which belong only to this class can be found at the end of this list.

output_length
<sequencelength>, default "" --

1 properties in this class. The above properties have been inherited from the base class simthlib::Decoder .

bits_per_step
<unsigned>, default "1" -- The number of input bits per step. (Usually this is left at 1.) FIXME: Document me!

polynomials
<vector_octal_int>, default "" -- The sequence of forward polynomials specifying the code, in octal notation. For an uncoded sequence, this is '1'. For HiperLAN/2, this is '171 133'.

recursive_polynomial
<octal_int>, default "0" -- The recursive polynomial in octal notation (equals 0 for non recursive codes)

systematic
<bool>, default "false" -- If true a systematic part is considered

4 properties in this class. The above properties have been inherited from the base class simthlib::ConvDecoder .

code_rate_numerator
<unsigned>, default "1" -- The numerator for the code rate fraction.

code_rate_denominator
<unsigned>, default "1" -- The denumerator for the code rate fraction, i.e. for code rate 1/2 this is '2'.

2 properties in this class.


Member Data Documentation

Puncturing* simthlib::PunctConvDecoder::usedPuncturing [protected]
 


Generated on Tue Aug 9 14:37:31 2005 for simtheticlib by  doxygen 1.4.1