5G-LENA nr-v3.0-32-g83aee33
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrLteMiErrorModel Class Reference

#include "nr-lte-mi-error-model.h"

+ Inheritance diagram for ns3::NrLteMiErrorModel:
+ Collaboration diagram for ns3::NrLteMiErrorModel:

Public Member Functions

 NrLteMiErrorModel ()
 NrLteMiErrorModel constructor.
 
 ~NrLteMiErrorModel () override
 ~NrLteMiErrorModel
 
TypeId GetInstanceTypeId () const override
 Get the type ID of this instance.
 
uint32_t GetMaxCbSize (uint32_t tbSize, uint8_t mcs) const override
 Get the maximum code block size, as per LTE.
 
uint8_t GetMaxMcs () const override
 Get the maximum MCS.
 
uint32_t GetPayloadSize (uint32_t usefulSC, uint8_t mcs, uint8_t rank, uint32_t rbNum, Mode mode) const override
 Get the payload size, following the MCSs in LTE.
 
double GetSpectralEfficiencyForCqi (uint8_t cqi) override
 Get the SE for a given CQI, following the CQIs in LTE.
 
double GetSpectralEfficiencyForMcs (uint8_t mcs) const override
 Get the SE for a given MCS, following the MCSs in LTE.
 
Ptr< NrErrorModelOutputGetTbDecodificationStats (const SpectrumValue &sinr, const std::vector< int > &map, uint32_t size, uint8_t mcs, const NrErrorModelHistory &history) override
 Get an output for the decodification error probability of a given transport block, assuming the MIESM method, LTE TC coding and block segmentation, MCSs in LTE, and HARQ based on IR.
 
- Public Member Functions inherited from ns3::NrErrorModel
 NrErrorModel ()
 NrErrorModel default constructor.
 
 ~NrErrorModel () override
 deconstructor
 
virtual NrSinrMatrix ComputeAvgSinrMimo (const std::vector< MimoSinrChunk > &sinrChunks)
 Compute an average SINR matrix.
 
std::vector< int > CreateVectorizedRbMap (std::vector< int > map, uint8_t rank)
 Create an equivalent RB index map for vectorized SINR values Matches layer-to-codeword mapping in TR 38.211, Table 7.3.1.3-1 If map contains index "j", the output vectorized map contains {j * rank, j * rank + 1, ..., j * rank + rank - 1}. Example: input RB map = {0, 1, 7, 11}, rank = 2 vectorizedMap = {0, 1, 2, 3, 14, 15, 22, 23}.
 
SpectrumValue CreateVectorizedSpecVal (const NrSinrMatrix &sinrMat)
 Linearize a 2D matrix into a vector, and convert that vector to a SpectrumValue Matches layer-to-codeword mapping in TR 38.211, Table 7.3.1.3-1.
 
TypeId GetInstanceTypeId () const override
 Get the type ID of this instance.
 
virtual Ptr< NrErrorModelOutputGetTbDecodificationStatsMimo (const std::vector< MimoSinrChunk > &mimoChunks, const std::vector< int > &map, uint32_t size, uint8_t mcs, uint8_t rank, const NrErrorModelHistory &history)
 Get an output for the decoding error probability of a given transport block. This method is not purely virtual. If derived ErrorModel does not override, the MIMO matrix is converted to a linear SpectrumValue, and the non-MIMO method is called.
 

Static Public Member Functions

static TypeId GetTypeId ()
 GetTypeId.
 
- Static Public Member Functions inherited from ns3::NrErrorModel
static TypeId GetTypeId ()
 GetTypeId.
 

Additional Inherited Members

- Public Types inherited from ns3::NrErrorModel
enum  Mode { DL , UL }
 Indicate the mode (UL or DL) More...
 
typedef std::vector< Ptr< NrErrorModelOutput > > NrErrorModelHistory
 Vector of previous output.
 

Detailed Description

This class provides the BLER estimation based on mutual information metrics, assuming TC coding with block segmentation as per TS 36.212 Sect. 5.1.2 and modulation and coding in TS 36.214 including up to 64-QAM. The BLER-SINR curves are obtained from a link level simulator (Vienna) that uses TC coding and said MCSs. In case of HARQ, the model currently follows HARQ with Incremental Redundancy, so that both the ECR and the MI are updated based on IEEE 802.16m-08/004r2.

Introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 32 bytes (on a 64-bit architecture).

Definition at line 60 of file nr-lte-mi-error-model.h.

Constructor & Destructor Documentation

◆ NrLteMiErrorModel()

ns3::NrLteMiErrorModel::NrLteMiErrorModel ( )

NrLteMiErrorModel constructor.

Definition at line 902 of file nr-lte-mi-error-model.cc.

◆ ~NrLteMiErrorModel()

ns3::NrLteMiErrorModel::~NrLteMiErrorModel ( )
override

~NrLteMiErrorModel

Definition at line 908 of file nr-lte-mi-error-model.cc.

Member Function Documentation

◆ GetInstanceTypeId()

TypeId ns3::NrLteMiErrorModel::GetInstanceTypeId ( ) const
override

Get the type ID of this instance.

Returns
the Type ID of this instance

Definition at line 923 of file nr-lte-mi-error-model.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetMaxCbSize()

uint32_t ns3::NrLteMiErrorModel::GetMaxCbSize ( uint32_t  tbSize,
uint8_t  mcs 
) const
overridevirtual

Get the maximum code block size, as per LTE.

Implements ns3::NrErrorModel.

Definition at line 1283 of file nr-lte-mi-error-model.cc.

◆ GetMaxMcs()

uint8_t ns3::NrLteMiErrorModel::GetMaxMcs ( ) const
overridevirtual

Get the maximum MCS.

Returns
the maximum MCS that is permitted with the error model

Implements ns3::NrErrorModel.

Definition at line 1290 of file nr-lte-mi-error-model.cc.

Referenced by GetSpectralEfficiencyForMcs().

+ Here is the caller graph for this function:

◆ GetPayloadSize()

uint32_t ns3::NrLteMiErrorModel::GetPayloadSize ( uint32_t  usefulSC,
uint8_t  mcs,
uint8_t  rank,
uint32_t  rbNum,
Mode  mode 
) const
overridevirtual

Get the payload size, following the MCSs in LTE.

Implements ns3::NrErrorModel.

Definition at line 1265 of file nr-lte-mi-error-model.cc.

◆ GetSpectralEfficiencyForCqi()

double ns3::NrLteMiErrorModel::GetSpectralEfficiencyForCqi ( uint8_t  cqi)
overridevirtual

Get the SE for a given CQI, following the CQIs in LTE.

Implements ns3::NrErrorModel.

Definition at line 1247 of file nr-lte-mi-error-model.cc.

◆ GetSpectralEfficiencyForMcs()

double ns3::NrLteMiErrorModel::GetSpectralEfficiencyForMcs ( uint8_t  mcs) const
overridevirtual

Get the SE for a given MCS, following the MCSs in LTE.

Implements ns3::NrErrorModel.

Definition at line 1256 of file nr-lte-mi-error-model.cc.

References GetMaxMcs().

+ Here is the call graph for this function:

◆ GetTbDecodificationStats()

Ptr< NrErrorModelOutput > ns3::NrLteMiErrorModel::GetTbDecodificationStats ( const SpectrumValue &  sinr,
const std::vector< int > &  map,
uint32_t  size,
uint8_t  mcs,
const NrErrorModelHistory history 
)
overridevirtual

Get an output for the decodification error probability of a given transport block, assuming the MIESM method, LTE TC coding and block segmentation, MCSs in LTE, and HARQ based on IR.

Parameters
sinrSINR vector
mapRB map
sizeTransport block size (bytes)
mcsMCS
historyHistory of the retransmission
Returns
A pointer to an output, with the tbler and accumulated MI, effective MI, code bits, and info bits.

Implements ns3::NrErrorModel.

Definition at line 1070 of file nr-lte-mi-error-model.cc.

◆ GetTypeId()

TypeId ns3::NrLteMiErrorModel::GetTypeId ( )
static

GetTypeId.

Returns
the object type id

Definition at line 914 of file nr-lte-mi-error-model.cc.

Referenced by GetInstanceTypeId(), ns3::NrAmc::GetTypeId(), and ns3::NrSpectrumPhy::GetTypeId().

+ Here is the caller graph for this function:

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