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

#include <Ieee80211OFDMMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211OFDMModeBase:
inet::physicallayer::Ieee80211OFDMTimingRelatedParametersBase inet::physicallayer::Ieee80211OFDMDataMode inet::physicallayer::Ieee80211OFDMSignalMode

Public Member Functions

 Ieee80211OFDMModeBase (const Ieee80211OFDMModulation *modulation, const Ieee80211OFDMCode *code, Hz channelSpacing, Hz bandwidth)
 
virtual ~Ieee80211OFDMModeBase ()
 
int getNumberOfDataSubcarriers () const
 
int getNumberOfPilotSubcarriers () const
 
int getNumberOfTotalSubcarriers () const
 
virtual bps getGrossBitrate () const
 
virtual bps getNetBitrate () const
 
Hz getBandwidth () const
 

Protected Member Functions

bps computeGrossBitrate (const Ieee80211OFDMModulation *modulation) const
 
bps computeNetBitrate (bps grossBitrate, const Ieee80211OFDMCode *code) const
 

Protected Attributes

const Ieee80211OFDMModulationmodulation
 
const Ieee80211OFDMCodecode
 
const Hz bandwidth
 
bps netBitrate
 
bps grossBitrate
 

Constructor & Destructor Documentation

inet::physicallayer::Ieee80211OFDMModeBase::Ieee80211OFDMModeBase ( const Ieee80211OFDMModulation modulation,
const Ieee80211OFDMCode code,
Hz  channelSpacing,
Hz  bandwidth 
)
27  :
30  code(code),
32  netBitrate(bps(NaN)),
34 {
35 }
bps grossBitrate
Definition: Ieee80211OFDMMode.h:52
const Ieee80211OFDMCode * code
Definition: Ieee80211OFDMMode.h:49
bps netBitrate
Definition: Ieee80211OFDMMode.h:51
compose< b, pow< s,-1 > > bps
Definition: Units.h:985
#define NaN
Definition: INETMath.h:103
const Hz bandwidth
Definition: Ieee80211OFDMMode.h:50
const Ieee80211OFDMModulation * modulation
Definition: Ieee80211OFDMMode.h:48
virtual inet::physicallayer::Ieee80211OFDMModeBase::~Ieee80211OFDMModeBase ( )
inlinevirtual
60 {}

Member Function Documentation

bps inet::physicallayer::Ieee80211OFDMModeBase::computeGrossBitrate ( const Ieee80211OFDMModulation modulation) const
protected

Referenced by getGrossBitrate().

63 {
65  return bps(codedBitsPerOFDMSymbol / getSymbolInterval());
66 }
const APSKModulationBase * getSubcarrierModulation() const
Definition: Ieee80211OFDMModulation.h:34
compose< b, pow< s,-1 > > bps
Definition: Units.h:985
const Ieee80211OFDMModulation * modulation
Definition: Ieee80211OFDMMode.h:48
int getNumberOfDataSubcarriers() const
Definition: Ieee80211OFDMMode.h:62
virtual unsigned int getCodeWordSize() const override
Definition: APSKModulationBase.h:47
bps inet::physicallayer::Ieee80211OFDMModeBase::computeNetBitrate ( bps  grossBitrate,
const Ieee80211OFDMCode code 
) const
protected

Referenced by getNetBitrate().

69 {
70  const ConvolutionalCode *convolutionalCode = code ? code->getConvolutionalCode() : nullptr;
71  if (convolutionalCode)
72  return grossBitrate * convolutionalCode->getCodeRatePuncturingK() / convolutionalCode->getCodeRatePuncturingN();
73  return grossBitrate;
74 }
bps grossBitrate
Definition: Ieee80211OFDMMode.h:52
const Ieee80211OFDMCode * code
Definition: Ieee80211OFDMMode.h:49
const ConvolutionalCode * getConvolutionalCode() const
Definition: Ieee80211OFDMCode.h:41
Hz inet::physicallayer::Ieee80211OFDMModeBase::getBandwidth ( ) const
inline
bps inet::physicallayer::Ieee80211OFDMModeBase::getGrossBitrate ( ) const
virtual

Reimplemented in inet::physicallayer::Ieee80211OFDMDataMode, and inet::physicallayer::Ieee80211OFDMSignalMode.

Referenced by inet::physicallayer::Ieee80211OFDMSignalMode::getGrossBitrate(), and inet::physicallayer::Ieee80211OFDMDataMode::getGrossBitrate().

77 {
78  if (std::isnan(grossBitrate.get()))
80  return grossBitrate;
81 }
bps grossBitrate
Definition: Ieee80211OFDMMode.h:52
const value_type & get() const
Definition: Units.h:89
const Ieee80211OFDMModulation * modulation
Definition: Ieee80211OFDMMode.h:48
bps computeGrossBitrate(const Ieee80211OFDMModulation *modulation) const
Definition: Ieee80211OFDMMode.cc:62
bps inet::physicallayer::Ieee80211OFDMModeBase::getNetBitrate ( ) const
virtual

Reimplemented in inet::physicallayer::Ieee80211OFDMDataMode, and inet::physicallayer::Ieee80211OFDMSignalMode.

Referenced by inet::physicallayer::Ieee80211OFDMSignalMode::getNetBitrate(), and inet::physicallayer::Ieee80211OFDMDataMode::getNetBitrate().

84 {
85  if (std::isnan(netBitrate.get()))
87  return netBitrate;
88 }
bps computeNetBitrate(bps grossBitrate, const Ieee80211OFDMCode *code) const
Definition: Ieee80211OFDMMode.cc:68
const Ieee80211OFDMCode * code
Definition: Ieee80211OFDMMode.h:49
const value_type & get() const
Definition: Units.h:89
bps netBitrate
Definition: Ieee80211OFDMMode.h:51
virtual bps getGrossBitrate() const
Definition: Ieee80211OFDMMode.cc:76
int inet::physicallayer::Ieee80211OFDMModeBase::getNumberOfDataSubcarriers ( ) const
inline
int inet::physicallayer::Ieee80211OFDMModeBase::getNumberOfPilotSubcarriers ( ) const
inline
63 { return 4; }
int inet::physicallayer::Ieee80211OFDMModeBase::getNumberOfTotalSubcarriers ( ) const
inline
int getNumberOfPilotSubcarriers() const
Definition: Ieee80211OFDMMode.h:63
int getNumberOfDataSubcarriers() const
Definition: Ieee80211OFDMMode.h:62

Member Data Documentation

const Hz inet::physicallayer::Ieee80211OFDMModeBase::bandwidth
protected
const Ieee80211OFDMCode* inet::physicallayer::Ieee80211OFDMModeBase::code
protected
bps inet::physicallayer::Ieee80211OFDMModeBase::grossBitrate
mutableprotected
const Ieee80211OFDMModulation* inet::physicallayer::Ieee80211OFDMModeBase::modulation
protected
bps inet::physicallayer::Ieee80211OFDMModeBase::netBitrate
mutableprotected

The documentation for this class was generated from the following files: