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

simthlib::ConvEncoder Class Reference

convolutional coder. More...

#include <encoder.h>

Inheritance diagram for simthlib::ConvEncoder:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int mem, int inbits, int outbits)
 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int inSymbolsPerStep, const simth::checkedVector< int > &polynomials)
 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int inSymbolsPerStep, const simth::checkedVector< int > &polynomials, const int recursivePolynomial, bool systematic)
 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int inSymbolsPerStep, int bitsPerSymbol, map_type mappMode, const simth::checkedVector< int > &polynomials, const int recursivePolynomial=0, bool systematic=false)
 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, int inputBitsPerStep, int outputBitsPerStep, map_type mappMode)
 ConvEncoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl)
virtual ~ConvEncoder ()
virtual int getDataLength (int codedLength) const
virtual int getCodeLength (int rawLength) const
virtual int numTailbits () const
virtual void Encode (const simth::BitSeq &bsin, simth::BitSeq *bsout) const
virtual int dataBitsPerStep () const
virtual int codedBitsPerStep () const
virtual void print (std::ostream &os) const

Static Public Member Functions

static simth::checkedVector<
int > 
stdVectorToSimthVector (const simth::Property::vector_int &)

Related Functions

(Note that these are not member functions.)

 propertylist_ConvEncoder (not_a_function)

Detailed Description

convolutional coder.

This class simulates a convolutional coder that can be based both on binary values or on symbols values. In the first case all additions are done modulo 2. Beside those commonly used binary coders this class implements coders that are not based on binary values but on symbols that are definded in the {0,1,2,..,M-1}. In that case the additions within the shift regitster are done modulo M. Hence, what is called the number of input bits for the binary case is called the number of input symbols.


Constructor & Destructor Documentation

simthlib::ConvEncoder::ConvEncoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  mem,
int  inbits,
int  outbits
 

Class constructor for binary convolutional codes. (This is the common case.)

A particular binary coder is determined by the memory length, the number of input bits and the number of output bits. In a more general point of view the number of input bits and the number of output bits can be seen as the number of input symbols and output symbols, respectively, while the number of bits per symbol is fixed to one.

Parameters:
deviceID ID of this device
system Pointer to parent simulation system
pl Property list of this device
mem Memory length
inbits number of input bits per step (could also be named as the number of input symbols per step).
outbits number of output bits per step (could also be named as the number of output symbols per step)

simthlib::ConvEncoder::ConvEncoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  inSymbolsPerStep,
const simth::checkedVector< int > &  polynomials
 

Class constructor for binary convolutional codes.

The number of bits per symbol is fixed to one.

simthlib::ConvEncoder::ConvEncoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  inSymbolsPerStep,
const simth::checkedVector< int > &  polynomials,
const int  recursivePolynomial,
bool  systematic
 

Class constructor for systematic (if last argument is set to true) recursive binary convolutional codes.

simthlib::ConvEncoder::ConvEncoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  inSymbolsPerStep,
int  bitsPerSymbol,
map_type  mappMode,
const simth::checkedVector< int > &  polynomials,
const int  recursivePolynomial = 0,
bool  systematic = false
 

Class constructor for non-systematic recursive convolutional code, where the number of bits per symbol is not fixed to one as for the binary convolutional coder.

simthlib::ConvEncoder::ConvEncoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
int  inputBitsPerStep,
int  outputBitsPerStep,
map_type  mappMode
 

Class constructor only for special purpose. The state diagram of the trellis is fixed. See ConvCodeTrellisExplicit for further explanation.

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

Class constructor for propertylist-based recursive binary convolutional codes.

virtual simthlib::ConvEncoder::~ConvEncoder  )  [inline, virtual]
 

Class destructor.


Member Function Documentation

virtual int simthlib::ConvEncoder::codedBitsPerStep  )  const [inline, virtual]
 

Returns the number of output bits per step.

virtual int simthlib::ConvEncoder::dataBitsPerStep  )  const [inline, virtual]
 

Returns the number of input bits per step.

virtual void simthlib::ConvEncoder::Encode const simth::BitSeq bsin,
simth::BitSeq bsout
const [virtual]
 

Encodes a bit sequence.

Implements simthlib::Encoder.

Reimplemented in simthlib::PunctConvEncoder.

int simthlib::ConvEncoder::getCodeLength int  rawLength  )  const [inline, virtual]
 

Returns the length of the coded bit sequence which the coder generates from a data sequence of the given length.

Implements simthlib::Encoder.

Reimplemented in simthlib::PunctConvEncoder.

int simthlib::ConvEncoder::getDataLength int  codedLength  )  const [inline, virtual]
 

Returns the length of a data bit sequence which can be encoded into a coded bit sequence of the given length.

Implements simthlib::Encoder.

Reimplemented in simthlib::PunctConvEncoder.

int simthlib::ConvEncoder::numTailbits  )  const [inline, virtual]
 

virtual void simthlib::ConvEncoder::print std::ostream &  os  )  const [virtual]
 

Reimplemented from simthlib::Encoder.

static simth::checkedVector<int> simthlib::ConvEncoder::stdVectorToSimthVector const simth::Property::vector_int  )  [static]
 


Friends And Related Function Documentation

propertylist_ConvEncoder not_a_function   )  [related]
 

These are the properties of class ConvEncoder . 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: Binary Convolutional encoder, specified by its generator polynomials (e.g. '1' for uncoded transmission and '171 133' for the HiperLAN/2 code).

Note that this class also has the Properties of its base classes. The direct base class is simthlib::Encoder ; direct link to its propertylist should be propertylist_Encoder(). 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.

input_length
<sequencelength>, default "" --

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

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.


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