INET Framework for OMNeT++/OMNEST
inet::physicallayer::Ieee80211ConvolutionalCode Class Reference

#include <Ieee80211ConvolutionalCode.h>

Inheritance diagram for inet::physicallayer::Ieee80211ConvolutionalCode:
inet::physicallayer::ConvolutionalCode inet::physicallayer::IForwardErrorCorrection inet::IPrintableObject

Public Member Functions

 Ieee80211ConvolutionalCode (int codeRateK, int codeRateN)
 
- Public Member Functions inherited from inet::physicallayer::ConvolutionalCode
 ConvolutionalCode (const char *transferFunctionMatrix, const char *puncturingMatrix, const char *constraintLengthVector, int codeRatePuncturingK, int codeRatePuncturingN, const char *mode)
 
int getCodeRatePuncturingK () const
 
int getCodeRatePuncturingN () const
 
const char * getConstraintLengthVector () const
 
const char * getMode () const
 
const char * getPuncturingMatrix () const
 
const char * getTransferFunctionMatrix () const
 
std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const override
 Prints this object to the provided output stream. More...
 
virtual double getCodeRate () const override
 
virtual int getEncodedLength (int decodedLength) const override
 
virtual int getDecodedLength (int encodedLength) const override
 
virtual double computeNetBitErrorRate (double grossBitErrorRate) const override
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Additional Inherited Members

- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 
- Protected Attributes inherited from inet::physicallayer::ConvolutionalCode
const char * transferFunctionMatrix
 
const char * puncturingMatrix
 
const char * constraintLengthVector
 
int codeRatePuncturingK
 
int codeRatePuncturingN
 
int memory
 
const char * mode
 

Constructor & Destructor Documentation

◆ Ieee80211ConvolutionalCode()

inet::physicallayer::Ieee80211ConvolutionalCode::Ieee80211ConvolutionalCode ( int  codeRateK,
int  codeRateN 
)
14  :
15  ConvolutionalCode("133 171", nullptr, "7", -1, -1, "truncated")
16 {
17  if (codeRateK == 1 && codeRateN == 2) {
20  puncturingMatrix = "1; 1";
21  }
22  else if (codeRateK == 2 && codeRateN == 3) {
25  puncturingMatrix = "1 1; 1 0";
26  }
27  else if (codeRateK == 3 && codeRateN == 4) {
30  puncturingMatrix = "1 1 0; 1 0 1";
31  }
32  else if (codeRateK == 5 && codeRateN == 6) {
35  puncturingMatrix = "1 1 0 1 0; 1 0 1 0 1";
36  }
37  else
38  throw cRuntimeError("Unsupported code rate %d/%d", codeRateK, codeRateN);
39 }

The documentation for this class was generated from the following files:
inet::physicallayer::ConvolutionalCode::codeRatePuncturingN
int codeRatePuncturingN
Definition: ConvolutionalCode.h:23
inet::physicallayer::ConvolutionalCode::codeRatePuncturingK
int codeRatePuncturingK
Definition: ConvolutionalCode.h:22
inet::physicallayer::ConvolutionalCode::ConvolutionalCode
ConvolutionalCode(const char *transferFunctionMatrix, const char *puncturingMatrix, const char *constraintLengthVector, int codeRatePuncturingK, int codeRatePuncturingN, const char *mode)
Definition: ConvolutionalCode.cc:15
inet::physicallayer::ConvolutionalCode::puncturingMatrix
const char * puncturingMatrix
Definition: ConvolutionalCode.h:20