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

The NrEesmIrT2 class. More...

#include "nr-eesm-ir-t2.h"

+ Inheritance diagram for ns3::NrEesmIrT2:
+ Collaboration diagram for ns3::NrEesmIrT2:

Public Member Functions

 NrEesmIrT2 ()
 NrEesmIrT2 constructor.
 
 ~NrEesmIrT2 () override
 ~NrEesmIrT2 deconstructor
 
- Public Member Functions inherited from ns3::NrEesmIr
 NrEesmIr ()
 NrEesmIr constructor.
 
 ~NrEesmIr () override
 ~NrEesmIr deconstructor
 
- Public Member Functions inherited from ns3::NrEesmErrorModel
 NrEesmErrorModel ()
 NrEesmErrorModel constructor.
 
 ~NrEesmErrorModel () override
 ~NrEesmErrorModel
 
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 in Bytes, as per NR. It depends on the LDPC base graph type.
 
uint8_t GetMaxMcs () const override
 Get the maximum MCS. It depends on NR tables being used.
 
uint32_t GetPayloadSize (uint32_t usefulSc, uint8_t mcs, uint8_t rank, uint32_t rbNum, Mode mode) const override
 Get the payload size in Bytes, following the MCSs in NR. It follows TS 38.214 Section 5.1.3.2 (DL) and 6.1.4.2 (UL) but without including quantizations and and limits (i.e., only up to Step 2)
 
double GetSpectralEfficiencyForCqi (uint8_t cqi) override
 Get the SE for a given CQI, following the CQIs in NR Table1/Table2 in TS38.214.
 
double GetSpectralEfficiencyForMcs (uint8_t mcs) const override
 Get the SE for a given MCS, following the MCSs in NR Table1/Table2 in TS38.214.
 
Ptr< NrErrorModelOutputGetTbDecodificationStats (const SpectrumValue &sinr, const std::vector< int > &map, uint32_t size, uint8_t mcs, const NrErrorModelHistory &sinrHistory) override
 Get an output for the decodification error probability of a given transport block, assuming the EESM method, NR LDPC coding and block segmentation, MCSs Table1/Table2 in NR, and HARQ based on CC.
 
- 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 ()
 Get the type id of the object.
 
- Static Public Member Functions inherited from ns3::NrEesmIr
static TypeId GetTypeId ()
 Get the type id of the object.
 
- Static Public Member Functions inherited from ns3::NrEesmErrorModel
static TypeId GetTypeId ()
 GetTypeId.
 
- Static Public Member Functions inherited from ns3::NrErrorModel
static TypeId GetTypeId ()
 GetTypeId.
 

Protected Member Functions

const std::vector< double > * GetBetaTable () const override
 
const std::vector< double > * GetMcsEcrTable () const override
 
const std::vector< uint8_t > * GetMcsMTable () const override
 
const SimulatedBlerFromSINR * GetSimulatedBlerFromSINR () const override
 
const std::vector< double > * GetSpectralEfficiencyForCqi () const override
 
const std::vector< double > * GetSpectralEfficiencyForMcs () const override
 
- Protected Member Functions inherited from ns3::NrEesmIr
double ComputeSINR (const SpectrumValue &sinr, const std::vector< int > &map, uint8_t mcs, uint32_t sizeBit, const NrErrorModel::NrErrorModelHistory &sinrHistory) const override
 Computes the effective SINR after retransmission combining with HARQ-IR. Also, it updates the equivalent ECR after retransmissions (m_Reff).
 
double GetMcsEq (uint8_t mcsTx) const override
 Returns the MCS corresponding to the ECR after retransmissions. In case of HARQ-IR the equivalent ECR changes after retransmissions, and it is updated inside ComputeSINR function. GetMcsEq gets the closest ECR to m_Reff from the available ones that belong to the same modulation order.
 
- Protected Member Functions inherited from ns3::NrEesmErrorModel
std::string PrintMap (const std::vector< int > &map) const
 function to print the RB map
 
double SinrEff (const SpectrumValue &sinr, const std::vector< int > &map, uint8_t mcs, double a, double b) const
 compute the effective SINR for the specified MCS and SINR, according to the EESM method.
 
double SinrExp (const SpectrumValue &sinr, const std::vector< int > &map, uint8_t mcs) const
 compute the sum of exponential SINRs for the specified MCS and SINR, according to the EESM method, used in HARQ-IR
 

Additional Inherited Members

- Public Types inherited from ns3::NrEesmErrorModel
typedef std::tuple< DoubleVector, DoubleVector > DoubleTuple
 
typedef std::vector< double > DoubleVector
 
typedef std::vector< std::vector< std::map< uint32_t, DoubleTuple > > > SimulatedBlerFromSINR
 
- 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.
 
- Public Attributes inherited from ns3::NrEesmErrorModel
friend NrL2smEesmTestCase
 

Detailed Description

The NrEesmIrT2 class.

Class that implements the IR-HARQ combining with Table 2. It can be used directly in the code.

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 88 bytes (on a 64-bit architecture).

Definition at line 23 of file nr-eesm-ir-t2.h.

Constructor & Destructor Documentation

◆ NrEesmIrT2()

ns3::NrEesmIrT2::NrEesmIrT2 ( )

NrEesmIrT2 constructor.

Definition at line 17 of file nr-eesm-ir-t2.cc.

◆ ~NrEesmIrT2()

ns3::NrEesmIrT2::~NrEesmIrT2 ( )
override

~NrEesmIrT2 deconstructor

Definition at line 21 of file nr-eesm-ir-t2.cc.

Member Function Documentation

◆ GetBetaTable()

const std::vector< double > * ns3::NrEesmIrT2::GetBetaTable ( ) const
overrideprotectedvirtual
Returns
pointer to a static vector that represents the beta table

Implements ns3::NrEesmErrorModel.

Definition at line 34 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_betaTable.

◆ GetMcsEcrTable()

const std::vector< double > * ns3::NrEesmIrT2::GetMcsEcrTable ( ) const
overrideprotectedvirtual
Returns
pointer to a static vector that represents the MCS-ECR table

Implements ns3::NrEesmErrorModel.

Definition at line 40 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_mcsEcrTable.

◆ GetMcsMTable()

const std::vector< uint8_t > * ns3::NrEesmIrT2::GetMcsMTable ( ) const
overrideprotectedvirtual
Returns
pointer to a static vector that represents the MCS-M table

Implements ns3::NrEesmErrorModel.

Definition at line 52 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_mcsMTable.

◆ GetSimulatedBlerFromSINR()

const NrEesmErrorModel::SimulatedBlerFromSINR * ns3::NrEesmIrT2::GetSimulatedBlerFromSINR ( ) const
overrideprotectedvirtual
Returns
pointer to a table of BLER vs SINR

Implements ns3::NrEesmErrorModel.

Definition at line 46 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_simulatedBlerFromSINR.

◆ GetSpectralEfficiencyForCqi()

const std::vector< double > * ns3::NrEesmIrT2::GetSpectralEfficiencyForCqi ( ) const
overrideprotectedvirtual
Returns
pointer to a static vector that represents the spectral efficiency for CQI

Implements ns3::NrEesmErrorModel.

Definition at line 64 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_spectralEfficiencyForCqi.

◆ GetSpectralEfficiencyForMcs()

const std::vector< double > * ns3::NrEesmIrT2::GetSpectralEfficiencyForMcs ( ) const
overrideprotectedvirtual
Returns
pointer to a static vector that represents the spectral efficiency for MCS

Implements ns3::NrEesmErrorModel.

Definition at line 58 of file nr-eesm-ir-t2.cc.

References ns3::NrEesmT2::m_spectralEfficiencyForMcs.

◆ GetTypeId()

TypeId ns3::NrEesmIrT2::GetTypeId ( )
static

Get the type id of the object.

Returns
the type id of the object

Definition at line 26 of file nr-eesm-ir-t2.cc.


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