User Manual, Developers Guide and API Documentation

rise::plmapping::PhyMode Class Reference

Class encapsulating Modulation and Coding -> PHY Mode. For Interoperation with other modules (e.g.) the schedulers, which represent the PHYModes with an int only, this class provides the possibility to map each combination of Modulation and coding to a unique integer and vice versa. The rightmost 4 Bits of the integer represent the coding, allowing for up to 16 different coding schemes. the other bits represent the modulation. More...

#include <plmapping/PhyMode.hpp>

Inheritance diagram for rise::plmapping::PhyMode:

Inheritance graph
[legend]
Collaboration diagram for rise::plmapping::PhyMode:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual bool dataRateIsValid () const
 this PhyMode can offer a data Rate
virtual std::string doToString () const
 synonymous access method for the modulation&coding (string)
virtual unsigned int getBitCapacity (simTimeType duration) const
 calculate capacity[bits] of a burst of certain duration
virtual unsigned int getBitCapacityFractional (simTimeType duration) const
 calculate capacity[bits] of a phyResource (chunk)
virtual double getBitsPerSymbol () const
 returns the net bit capacity (derived from mutual information, MI) in the unit of [bit/s/Hz] taking Modulation&CodingRate into account. For one OFDM subcarrier and one OFDM symbol duration, this is the "BitsPerSymbol". It is NOT the bitrate of a total OFDM subcarrier or subchannel.
virtual double getCodeRate () const
 access method for the code rate (double)
virtual rise::plmapping::Coding getCoding () const
 access method for the coding (int)
virtual std::string getCodingString () const
 access method for the coding (string)
virtual double getDataRate () const
 datarate in [bits per second] for one subChannel
virtual double getDataRate (double _symbolRate, unsigned int _subCarriersPerSubChannel=1) const
 number of bits that fit into certain number of OFDM symbols
virtual double getMI2PER (const double mib, unsigned int bits) const
 PER = f(MIB,bits), blockLength bits (=payload[net], not CWL[gross]).
virtual wns::Ratio getMIB2SINR (const double &mib) const
 SINR = f(MIB).
virtual rise::plmapping::Modulation getModulation () const
 access method for the modulation (int)
virtual std::string getModulationString () const
 access method for the modulation (string)
virtual double getSINR2MI (const wns::Ratio &sinr) const
 MI = f(SINR) (mutual information).
virtual double getSINR2MIB (const wns::Ratio &sinr) const
 MIB = f(SINR) (mutual information per bit, [0..1]).
virtual double getSINR2PER (const wns::Ratio &sinr, unsigned int bits) const
 PER = f(SINR,bits), blockLength bits (=payload[net], not CWL[gross]).
virtual std::string getString () const
 access method for the modulation&coding (string)
virtual bool isValid () const
 true if PhyMode is set (not undefined)
virtual bool nameMatches (const std::string &name) const
 true, if string matches to the PhyMode
 PhyMode (Modulation _modulation, rise::plmapping::Coding _coding, wns::service::phy::phymode::SNR2MIInterface *_snr2miMapper, wns::service::phy::phymode::CoderFullMappingInterface *_coderMapper)
 Construct PHY Mode from two ints. Used for conversion in PhyModeTest.
 PhyMode (const wns::pyconfig::View &config)
 Construct PHY Mode from PyConfig.
 PhyMode ()
 Construct empty=undefined PhyMode. Means: "feature not used".
virtual void setSubCarriersPerSubChannel (unsigned int _subCarriersPerSubChannel)
virtual void setSymbolDuration (simTimeType _symbolDuration)
 attention: symbolDuration here means fullSymbolDuration = 1/symbolRateOFDM = OFDMsymbolDuration+cyclicPrefixDuration
virtual ~PhyMode ()

Static Public Member Functions

static const PhyModeemptyPhyMode ()
 give a const reference to an empty PhyMode

Private Member Functions

virtual void calculateDataRate ()
 try to calculate dataRate
virtual void cloneParameters (const PhyMode &other)
virtual unsigned int toInt () const
 Convert PHY Mode (M&C) to one int.

Private Attributes

wns::service::phy::phymode::CoderFullMappingInterfacecoderMapper
 Helper object for the conversion from/to strings, ints and codeRates.
rise::plmapping::Coding coding
 coding for this phymode
double dataRate
bool dataRateKnown
rise::plmapping::Modulation modulation
 modulation for this phymode
wns::service::phy::phymode::SNR2MIInterfacesnr2miMapper
 Helper object for the performance calculation of mi=f(sinr,modulation).
unsigned int subCarriersPerSubChannel
bool subCarriersPerSubChannelKnown
 helper values for performance calculations
simTimeType symbolDuration
bool symbolDurationKnown

Friends

class rise::plmapping::tests::PhyModeMapperTest
class rise::plmapping::tests::PhyModeTest

Classes

class  UndefinedException
 Exception thrown when features used with undefined PhyMode. More...


Detailed Description

Author:
Rainer Schoenen (rs@comnets.rwth-aachen.de) rise::plmapping::PhyMode

Definition at line 81 of file PhyMode.hpp.


Constructor & Destructor Documentation

PhyMode::PhyMode (  ) 

Definition at line 45 of file PhyMode.cpp.

PhyMode::PhyMode ( const wns::pyconfig::View config  )  [explicit]

Definition at line 61 of file PhyMode.cpp.

PhyMode::PhyMode ( Modulation  _modulation,
rise::plmapping::Coding  _coding,
wns::service::phy::phymode::SNR2MIInterface _snr2miMapper,
wns::service::phy::phymode::CoderFullMappingInterface _coderMapper 
)

Construct PHY Mode from two ints. Also needs the coderMapper pointer (Used for conversion).

Definition at line 91 of file PhyMode.cpp.

PhyMode::~PhyMode (  )  [virtual]

Definition at line 109 of file PhyMode.cpp.


Member Function Documentation

void PhyMode::calculateDataRate (  )  [private, virtual]

Definition at line 306 of file PhyMode.cpp.

void PhyMode::cloneParameters ( const PhyMode other  )  [private, virtual]

Definition at line 130 of file PhyMode.cpp.

bool PhyMode::dataRateIsValid (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 151 of file PhyMode.cpp.

virtual std::string rise::plmapping::PhyMode::doToString (  )  const [inline, virtual]

Implements wns::IOutputStreamable.

Definition at line 191 of file PhyMode.hpp.

static const PhyMode& rise::plmapping::PhyMode::emptyPhyMode (  )  [inline, static]

const PhyMode& phyMode = rise::plmapping::PhyMode::emptyPhyMode()

Definition at line 197 of file PhyMode.hpp.

unsigned int PhyMode::getBitCapacity ( simTimeType  duration  )  const [virtual]

See also:
use like phyCapacity.getBitCapacity(...) in PhyUser.cpp here the correct OFDM symbol boundaries are taken into account

Definition at line 249 of file PhyMode.cpp.

unsigned int PhyMode::getBitCapacityFractional ( simTimeType  duration  )  const [virtual]

See also:
use like phyCapacity(myCommand->local.phymode, ...) in PhyUser.cpp here the OFDM symbol boundaries are not checked. Any fraction is accepted

Definition at line 237 of file PhyMode.cpp.

double PhyMode::getBitsPerSymbol (  )  const [virtual]

bit rate per OFDM symbol

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 179 of file PhyMode.cpp.

double PhyMode::getCodeRate (  )  const [virtual]

Definition at line 170 of file PhyMode.cpp.

rise::plmapping::Coding PhyMode::getCoding (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 163 of file PhyMode.cpp.

std::string PhyMode::getCodingString (  )  const [virtual]

Definition at line 278 of file PhyMode.cpp.

double PhyMode::getDataRate (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 202 of file PhyMode.cpp.

double PhyMode::getDataRate ( double  _symbolRate,
unsigned int  _subCarriersPerSubChannel = 1 
) const [virtual]

datarate in [bits per second] symbolRate = 1.0/symbolDuration subCarriersPerSubChannel

Definition at line 196 of file PhyMode.cpp.

double PhyMode::getMI2PER ( const double  mib,
unsigned int  bits 
) const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 218 of file PhyMode.cpp.

wns::Ratio PhyMode::getMIB2SINR ( const double mib  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 230 of file PhyMode.cpp.

rise::plmapping::Modulation PhyMode::getModulation (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 157 of file PhyMode.cpp.

std::string PhyMode::getModulationString (  )  const [virtual]

Definition at line 268 of file PhyMode.cpp.

double PhyMode::getSINR2MI ( const wns::Ratio sinr  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 208 of file PhyMode.cpp.

double PhyMode::getSINR2MIB ( const wns::Ratio sinr  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 213 of file PhyMode.cpp.

double PhyMode::getSINR2PER ( const wns::Ratio sinr,
unsigned int  bits 
) const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 223 of file PhyMode.cpp.

std::string PhyMode::getString (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 288 of file PhyMode.cpp.

bool PhyMode::isValid (  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 141 of file PhyMode.cpp.

bool PhyMode::nameMatches ( const std::string &  name  )  const [virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 294 of file PhyMode.cpp.

void PhyMode::setSubCarriersPerSubChannel ( unsigned int  _subCarriersPerSubChannel  )  [virtual]

Definition at line 112 of file PhyMode.cpp.

void PhyMode::setSymbolDuration ( simTimeType  _symbolDuration  )  [virtual]

Definition at line 121 of file PhyMode.cpp.

unsigned int PhyMode::toInt (  )  const [private, virtual]

Implements wns::service::phy::phymode::PhyModeInterface.

Definition at line 300 of file PhyMode.cpp.


Friends And Related Function Documentation

friend class rise::plmapping::tests::PhyModeMapperTest [friend]

Definition at line 87 of file PhyMode.hpp.

friend class rise::plmapping::tests::PhyModeTest [friend]

Definition at line 86 of file PhyMode.hpp.


Member Data Documentation

Helper object for the conversion from/to strings, ints and codeRates, plus mapping per=f(mi,bl)

Definition at line 94 of file PhyMode.hpp.

Definition at line 98 of file PhyMode.hpp.

Definition at line 105 of file PhyMode.hpp.

Definition at line 104 of file PhyMode.hpp.

Definition at line 96 of file PhyMode.hpp.

Definition at line 90 of file PhyMode.hpp.

Definition at line 101 of file PhyMode.hpp.

Definition at line 100 of file PhyMode.hpp.

Definition at line 103 of file PhyMode.hpp.

Definition at line 102 of file PhyMode.hpp.


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

Generated on Sat May 26 03:32:38 2012 for openWNS by  doxygen 1.5.5