INET Framework for OMNeT++/OMNEST
|
#include <ConvolutionalCoder.h>
Classes | |
class | TrellisGraphNode |
Public Types | |
typedef std::vector< std::vector< ShortBitVector > > | ShortBitVectorMatrix |
Public Types inherited from inet::physicallayer::IPrintableObject | |
enum | PrintLevel { PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO, PRINT_LEVEL_COMPLETE = INT_MIN } |
Public Member Functions | |
ConvolutionalCoder (const ConvolutionalCode *convolutionalCode) | |
~ConvolutionalCoder () | |
BitVector | encode (const BitVector &informationBits) const override |
std::pair< BitVector, bool > | decode (const BitVector &encodedBits) const override |
const ConvolutionalCode * | getForwardErrorCorrection () const override |
unsigned int | getMemorySizeSum () const |
const std::vector< int > & | getConstraintLengthVector () const |
const ShortBitVectorMatrix & | getTransferFunctionMatrix () const |
const std::vector< ShortBitVector > & | getPuncturingMatrix () const |
int | getNumberOfStates () const |
int | getNumberOfOutputSymbols () const |
int | getNumberOfInputSymbols () const |
const int ** | getStateTransitionTable () const |
const int ** | getOutputTable () const |
std::ostream & | printToStream (std::ostream &stream, int level) const override |
Prints this object to the provided output stream. More... | |
Public Member Functions inherited from inet::physicallayer::IPrintableObject | |
virtual | ~IPrintableObject () |
virtual std::string | getInfoStringRepresentation () const |
virtual std::string | getDetailStringRepresentation () const |
virtual std::string | getDebugStringRepresentation () const |
virtual std::string | getTraceStringRepresentation () const |
virtual std::string | getCompleteStringRepresentation () const |
Protected Member Functions | |
bool | eXOR (bool alpha, bool beta) const |
void | setTransferFunctionMatrix (std::vector< std::vector< int > > &transferFMatrix) |
ShortBitVector | inputSymbolToOutputSymbol (const ShortBitVector &state, const ShortBitVector &inputSymbol) const |
bool | modulo2Adder (const ShortBitVector &shiftRegisters, const ShortBitVector &generatorPolynomial) const |
ShortBitVector | giveNextOutputSymbol (const BitVector &encodedBits, int decodedLength, const BitVector &isPunctured, ShortBitVector &excludedFromHammingDistance) const |
BitVector | puncturing (const BitVector &informationBits) const |
BitVector | depuncturing (const BitVector &decodedBits, BitVector &isPunctured) const |
BitVector | getPuncturedIndices (unsigned int length) const |
unsigned int | computeHammingDistance (const ShortBitVector &u, const ShortBitVector &excludedBits, const ShortBitVector &w) const |
void | updateTrellisGraph (TrellisGraphNode **trellisGraph, unsigned int time, const ShortBitVector &outputSymbol, const ShortBitVector &excludedFromHammingDistance) const |
bool | isCompletelyDecoded (unsigned int encodedLength, unsigned int decodedLength) const |
void | initParameters () |
void | memoryAllocations () |
void | computeHammingDistanceLookupTable () |
void | computeMemorySizes () |
void | computeMemorySizeSum () |
void | computeNumberOfStates () |
void | computeNumberOfInputAndOutputSymbols () |
void | computeStateTransitions () |
void | computeOutputAndInputSymbols () |
void | computeDecimalToOutputSymbolVector () |
void | printStateTransitions () const |
void | printOutputs () const |
void | printTransferFunctionMatrix () const |
void | parseMatrix (const char *strMatrix, std::vector< std::vector< int > > &matrix) const |
void | parseVector (const char *strVector, std::vector< int > &vector) const |
void | convertToShortBitVectorMatrix (std::vector< std::vector< int > > &matrix, std::vector< ShortBitVector > &boolMatrix) const |
ShortBitVector | octalToBinary (int octalNum, int fixedSize) const |
int | octalToDec (int octalNum) const |
std::pair< BitVector, bool > | traversePath (const TrellisGraphNode &bestNode, TrellisGraphNode **bestPaths, bool isTruncatedMode) const |
Protected Attributes | |
const char * | mode |
unsigned int | codeRateParamaterK |
unsigned int | codeRateParamaterN |
unsigned int | codeRatePuncturingK |
unsigned int | codeRatePuncturingN |
int | memorySizeSum |
std::vector< int > | memorySizes |
std::vector< int > | constraintLengths |
int | numberOfStates |
int | numberOfInputSymbols |
int | numberOfOutputSymbols |
ShortBitVectorMatrix | transferFunctionMatrix |
std::vector< ShortBitVector > | puncturingMatrix |
int ** | inputSymbols |
ShortBitVector ** | outputSymbols |
ShortBitVector * | decimalToInputSymbol |
ShortBitVector * | decimalToOutputSymbol |
int ** | stateTransitions |
unsigned char *** | hammingDistanceLookupTable |
std::vector< std::vector< TrellisGraphNode > > | trellisGraph |
const ConvolutionalCode * | convolutionalCode |
typedef std::vector<std::vector<ShortBitVector> > inet::physicallayer::ConvolutionalCoder::ShortBitVectorMatrix |
inet::physicallayer::ConvolutionalCoder::ConvolutionalCoder | ( | const ConvolutionalCode * | convolutionalCode | ) |
inet::physicallayer::ConvolutionalCoder::~ConvolutionalCoder | ( | ) |
|
protected |
Referenced by initParameters().
|
inlineprotected |
Referenced by updateTrellisGraph().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by ConvolutionalCoder().
|
overridevirtual |
Implements inet::physicallayer::IFECCoder.
Referenced by inet::physicallayer::ConvolutionalCoderModule::decode().
|
protected |
Referenced by decode().
|
overridevirtual |
Implements inet::physicallayer::IFECCoder.
Referenced by inet::physicallayer::ConvolutionalCoderModule::encode().
|
inlineprotected |
Referenced by inputSymbolToOutputSymbol(), and modulo2Adder().
|
inline |
|
inlineoverridevirtual |
Implements inet::physicallayer::IFECCoder.
Referenced by inet::physicallayer::ConvolutionalCoderModule::getForwardErrorCorrection().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
Referenced by depuncturing(), and puncturing().
|
inline |
|
inline |
|
inline |
|
protected |
Referenced by decode().
|
protected |
Referenced by ConvolutionalCoder().
|
protected |
Referenced by computeOutputAndInputSymbols().
|
protected |
Referenced by giveNextOutputSymbol().
|
protected |
Referenced by initParameters().
|
protected |
Referenced by inputSymbolToOutputSymbol().
|
protected |
Referenced by setTransferFunctionMatrix().
|
protected |
Referenced by ConvolutionalCoder().
|
protected |
Referenced by ConvolutionalCoder().
|
protected |
Referenced by ConvolutionalCoder(), and parseMatrix().
|
protected |
|
protected |
|
overridevirtual |
Prints this object to the provided output stream.
Function calls to operator<< with pointers or references either const or not are all forwarded to this function.
Reimplemented from inet::physicallayer::IPrintableObject.
Referenced by inet::physicallayer::ConvolutionalCoderModule::printToStream().
|
protected |
|
protected |
Referenced by encode().
|
protected |
Referenced by ConvolutionalCoder().
|
protected |
Referenced by decode().
|
protected |
Referenced by decode().
|
protected |
|
protected |
|
protected |
Referenced by ConvolutionalCoder(), and depuncturing().
|
protected |
Referenced by ConvolutionalCoder(), and depuncturing().
|
protected |
Referenced by computeMemorySizes(), ConvolutionalCoder(), and setTransferFunctionMatrix().
|
protected |
Referenced by printToStream().
|
protected |
Referenced by computeOutputAndInputSymbols(), memoryAllocations(), traversePath(), and ~ConvolutionalCoder().
|
protected |
Referenced by computeDecimalToOutputSymbolVector(), memoryAllocations(), updateTrellisGraph(), and ~ConvolutionalCoder().
|
protected |
Referenced by computeHammingDistanceLookupTable(), memoryAllocations(), and ~ConvolutionalCoder().
|
protected |
Referenced by computeOutputAndInputSymbols(), memoryAllocations(), updateTrellisGraph(), and ~ConvolutionalCoder().
|
protected |
Referenced by computeMemorySizes(), computeMemorySizeSum(), computeStateTransitions(), and inputSymbolToOutputSymbol().
|
protected |
Referenced by computeMemorySizeSum(), computeNumberOfStates(), computeOutputAndInputSymbols(), and computeStateTransitions().
|
protected |
Referenced by ConvolutionalCoder(), and decode().
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by computeOutputAndInputSymbols(), encode(), memoryAllocations(), printOutputs(), and ~ConvolutionalCoder().
|
protected |
Referenced by ConvolutionalCoder(), and getPuncturedIndices().
|
protected |
Referenced by computeStateTransitions(), encode(), memoryAllocations(), printStateTransitions(), updateTrellisGraph(), and ~ConvolutionalCoder().
|
protected |
Referenced by inputSymbolToOutputSymbol(), printTransferFunctionMatrix(), and setTransferFunctionMatrix().
|
protected |
Referenced by decode().