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
 
virtual 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

◆ Ieee80211OfdmModeBase()

inet::physicallayer::Ieee80211OfdmModeBase::Ieee80211OfdmModeBase ( const Ieee80211OfdmModulation modulation,
const Ieee80211OfdmCode code,
Hz  channelSpacing,
Hz  bandwidth 
)

◆ ~Ieee80211OfdmModeBase()

virtual inet::physicallayer::Ieee80211OfdmModeBase::~Ieee80211OfdmModeBase ( )
inlinevirtual
49 {}

Member Function Documentation

◆ computeGrossBitrate()

bps inet::physicallayer::Ieee80211OfdmModeBase::computeGrossBitrate ( const Ieee80211OfdmModulation modulation) const
protected
52 {
54  return bps(codedBitsPerOFDMSymbol / getSymbolInterval());
55 }

Referenced by getGrossBitrate().

◆ computeNetBitrate()

bps inet::physicallayer::Ieee80211OfdmModeBase::computeNetBitrate ( bps  grossBitrate,
const Ieee80211OfdmCode code 
) const
protected
58 {
59  const ConvolutionalCode *convolutionalCode = code ? code->getConvolutionalCode() : nullptr;
60  if (convolutionalCode)
61  return grossBitrate * convolutionalCode->getCodeRatePuncturingK() / convolutionalCode->getCodeRatePuncturingN();
62  return grossBitrate;
63 }

Referenced by getNetBitrate().

◆ getBandwidth()

virtual Hz inet::physicallayer::Ieee80211OfdmModeBase::getBandwidth ( ) const
inlinevirtual

Reimplemented in inet::physicallayer::Ieee80211OfdmDataMode.

57 { return bandwidth; }

◆ getGrossBitrate()

◆ getNetBitrate()

bps inet::physicallayer::Ieee80211OfdmModeBase::getNetBitrate ( ) const
virtual

◆ getNumberOfDataSubcarriers()

int inet::physicallayer::Ieee80211OfdmModeBase::getNumberOfDataSubcarriers ( ) const
inline

◆ getNumberOfPilotSubcarriers()

int inet::physicallayer::Ieee80211OfdmModeBase::getNumberOfPilotSubcarriers ( ) const
inline
52 { return 4; }

◆ getNumberOfTotalSubcarriers()

int inet::physicallayer::Ieee80211OfdmModeBase::getNumberOfTotalSubcarriers ( ) const
inline

Member Data Documentation

◆ bandwidth

const Hz inet::physicallayer::Ieee80211OfdmModeBase::bandwidth
protected

◆ code

◆ grossBitrate

bps inet::physicallayer::Ieee80211OfdmModeBase::grossBitrate
mutableprotected

◆ modulation

◆ netBitrate

bps inet::physicallayer::Ieee80211OfdmModeBase::netBitrate
mutableprotected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211OfdmModeBase::bandwidth
const Hz bandwidth
Definition: Ieee80211OfdmMode.h:39
inet::physicallayer::ApskModulationBase::getCodeWordSize
virtual unsigned int getCodeWordSize() const override
Definition: ApskModulationBase.h:37
inet::units::units::bps
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
inet::physicallayer::Ieee80211OfdmModeBase::grossBitrate
bps grossBitrate
Definition: Ieee80211OfdmMode.h:41
inet::physicallayer::Ieee80211OfdmModeBase::code
const Ieee80211OfdmCode * code
Definition: Ieee80211OfdmMode.h:38
inet::physicallayer::Ieee80211OfdmModeBase::getGrossBitrate
virtual bps getGrossBitrate() const
Definition: Ieee80211OfdmMode.cc:65
NaN
#define NaN
Definition: INETMath.h:91
inet::physicallayer::Ieee80211OfdmModulation::getSubcarrierModulation
const ApskModulationBase * getSubcarrierModulation() const
Definition: Ieee80211OfdmModulation.h:24
inet::physicallayer::Ieee80211OfdmModeBase::getNumberOfPilotSubcarriers
int getNumberOfPilotSubcarriers() const
Definition: Ieee80211OfdmMode.h:52
inet::physicallayer::Ieee80211OfdmModeBase::computeNetBitrate
bps computeNetBitrate(bps grossBitrate, const Ieee80211OfdmCode *code) const
Definition: Ieee80211OfdmMode.cc:57
inet::physicallayer::Ieee80211OfdmModeBase::computeGrossBitrate
bps computeGrossBitrate(const Ieee80211OfdmModulation *modulation) const
Definition: Ieee80211OfdmMode.cc:51
inet::units::value::get
const value_type & get() const
Definition: Units.h:108
inet::physicallayer::Ieee80211OfdmModeBase::modulation
const Ieee80211OfdmModulation * modulation
Definition: Ieee80211OfdmMode.h:37
inet::physicallayer::Ieee80211OfdmModeBase::netBitrate
bps netBitrate
Definition: Ieee80211OfdmMode.h:40
inet::physicallayer::Ieee80211OfdmModeBase::getNumberOfDataSubcarriers
int getNumberOfDataSubcarriers() const
Definition: Ieee80211OfdmMode.h:51
inet::physicallayer::Ieee80211OfdmCode::getConvolutionalCode
const ConvolutionalCode * getConvolutionalCode() const
Definition: Ieee80211OfdmCode.h:31