5G-LENA
nr-v3.0-25-g90be5d1
The 5G/NR module for the ns-3 simulator
|
The NrEesmCcT2 class. More...
#include "nr-eesm-cc-t2.h"
Public Member Functions | |
NrEesmCcT2 () | |
NrEesmCcT2 constructor. | |
~NrEesmCcT2 () override | |
~NrEesmCcT2 deconstructor | |
Public Member Functions inherited from ns3::NrEesmCc | |
NrEesmCc () | |
NrEesmCc constructor. | |
~NrEesmCc () override | |
~NrEesmCc | |
Public Member Functions inherited from ns3::NrEesmErrorModel | |
NrEesmErrorModel () | |
NrEesmErrorModel constructor. | |
~NrEesmErrorModel () override | |
~NrEesmErrorModel | |
TypeId | GetInstanceTypeId () const override |
Get the type ID of this instance. More... | |
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. More... | |
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) More... | |
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< NrErrorModelOutput > | GetTbDecodificationStats (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. More... | |
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. More... | |
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}. More... | |
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. More... | |
TypeId | GetInstanceTypeId () const override |
Get the type ID of this instance. More... | |
virtual Ptr< NrErrorModelOutput > | GetTbDecodificationStatsMimo (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. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type id of the object. More... | |
Static Public Member Functions inherited from ns3::NrEesmCc | |
static TypeId | GetTypeId () |
Get the type id of the object. More... | |
Static Public Member Functions inherited from ns3::NrEesmErrorModel | |
static TypeId | GetTypeId () |
GetTypeId. More... | |
Static Public Member Functions inherited from ns3::NrErrorModel | |
static TypeId | GetTypeId () |
GetTypeId. More... | |
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::NrEesmCc | |
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-CC. More... | |
double | GetMcsEq (uint8_t mcsTx) const override |
Returns the MCS corresponding to the ECR after retransmissions. As the ECR does not change with retransmissions with HARQ-CC, and MCS is kept fixed through retransmissions, it returns current MCS. More... | |
Protected Member Functions inherited from ns3::NrEesmErrorModel | |
std::string | PrintMap (const std::vector< int > &map) const |
function to print the RB map More... | |
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. More... | |
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 More... | |
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. More... | |
Public Attributes inherited from ns3::NrEesmErrorModel | |
friend | NrL2smEesmTestCase |
The NrEesmCcT2 class.
Class that implements the CC-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 80 bytes (on a 64-bit architecture).
Definition at line 23 of file nr-eesm-cc-t2.h.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 34 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_betaTable.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 40 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_mcsEcrTable.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 52 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_mcsMTable.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 46 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_simulatedBlerFromSINR.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 64 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_spectralEfficiencyForCqi.
|
overrideprotectedvirtual |
Implements ns3::NrEesmErrorModel.
Definition at line 58 of file nr-eesm-cc-t2.cc.
References ns3::NrEesmT2::m_spectralEfficiencyForMcs.
|
static |
Get the type id of the object.
Definition at line 26 of file nr-eesm-cc-t2.cc.