ns-3
ns3::LteAmc Class Reference

The LteAmc class implements the Adaptive Modulation And Coding Scheme as proposed in 3GPP TSG-RAN WG1 - R1-081483 http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_52b/Docs/R1-081483.zip. More...

#include <lte-amc.h>

Inheritance diagram for ns3::LteAmc:
Collaboration diagram for ns3::LteAmc:

List of all members.

Public Types

enum  AmcModel { PiroEW2010, MiErrorModel }

Public Member Functions

int GetMcsFromCqi (int cqi)
 Get the Modulation anc Coding Scheme for a CQI value.
int GetTbSizeFromMcs (int mcs, int nprb)
 Get the Transport Block Size for a selected MCS and number of PRB (table 7.1.7.2.1-1 of 36.213)
double GetSpectralEfficiencyFromCqi (int cqi)
 Get the spectral efficiency value associated to the received CQI.
std::vector< int > CreateCqiFeedbacks (const SpectrumValue &sinr, uint8_t rbgSize=0)
 Create a message with CQI feedback.
int GetCqiFromSpectralEfficiency (double s)
 Get a proper CQI for the spectrale efficiency value. In order to assure a fewer block error rate, the AMC chooses the lower CQI value for a given spectral efficiency.
- Public Member Functions inherited from ns3::Object
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Dispose (void)
void AggregateObject (Ptr< Object > other)
AggregateIterator GetAggregateIterator (void) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::LteAmc.

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
virtual void NotifyNewAggregate (void)
virtual void DoStart (void)
virtual void DoDispose (void)
 Object (const Object &o)

Detailed Description

The LteAmc class implements the Adaptive Modulation And Coding Scheme as proposed in 3GPP TSG-RAN WG1 - R1-081483 http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_52b/Docs/R1-081483.zip.

Note:
All the methods of this class are static, so you'll never need to create and manage instances of this class.

Member Function Documentation

std::vector< int > ns3::LteAmc::CreateCqiFeedbacks ( const SpectrumValue sinr,
uint8_t  rbgSize = 0 
)

Create a message with CQI feedback.

Parameters:
sinrthe SpectrumValue vector of SINR for evaluating the CQI
rbgSizesize of RB group (in RBs) for evaluating subband/wideband CQI

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), GetCqiFromSpectralEfficiency(), ns3::LteMiErrorModel::GetTbError(), GetTbSizeFromMcs(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::LteUePhy::CreateDlCqiFeedbackMessage().

int ns3::LteAmc::GetCqiFromSpectralEfficiency ( double  s)

Get a proper CQI for the spectrale efficiency value. In order to assure a fewer block error rate, the AMC chooses the lower CQI value for a given spectral efficiency.

Parameters:
sthe spectral efficiency
Returns:
the CQI value

References NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by CreateCqiFeedbacks().

int ns3::LteAmc::GetMcsFromCqi ( int  cqi)

Get the Modulation anc Coding Scheme for a CQI value.

Parameters:
cqithe cqi value
Returns:
the MCS value

References NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

double ns3::LteAmc::GetSpectralEfficiencyFromCqi ( int  cqi)

Get the spectral efficiency value associated to the received CQI.

Parameters:
cqithe cqi value
Returns:
the spectral efficiency in (bit/s)/Hz

References NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

int ns3::LteAmc::GetTbSizeFromMcs ( int  mcs,
int  nprb 
)

Get the Transport Block Size for a selected MCS and number of PRB (table 7.1.7.2.1-1 of 36.213)

Parameters:
mcsthe mcs index
nprbthe no. of PRB
Returns:
the Transport Block Size in bits

References NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by CreateCqiFeedbacks().

TypeId ns3::LteAmc::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::LteAmc.

Attributes defined for this type:

  • Ber: The requested BER in assigning MCS (default is 0.00005).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5e-05
    • Flags: construct write read
  • AmcModel: AMC model used to assign CQI
    • Set with class: ns3::EnumValue
    • Underlying type: Vienna|PiroEW2010
    • Initial value: Vienna
    • Flags: construct write read

No TraceSources defined for this type.

Reimplemented from ns3::Object.

References ns3::TypeId::SetParent().


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