5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrCbTwoPort Class Reference

Implementation of the two-port codebook in 3GPP TS 38.214 This class implements a codebook for a gNB with at most 2 antenna ports. For a single port, it returns single-element matrix with value 1.0. For two ports, it implements Table 5.2.2.2.1-1: Codebooks for 1-layer and 2-layer CSI reporting using antenna ports 3000 to 3001. There is a slight abuse of notation: For the "codebook index", the i2 index of other Type-I codebooks is used, and the i1 index remains unused. More...

#include "nr-cb-two-port.h"

+ Inheritance diagram for ns3::NrCbTwoPort:
+ Collaboration diagram for ns3::NrCbTwoPort:

Public Member Functions

ComplexMatrixArray GetBasePrecMat (size_t i1, size_t i2) const override
 Get the 2D precoding matrix.
 
void Init () override
 Initialize the codebook parameters after construction, based on attribute values.
 
- Public Member Functions inherited from ns3::NrCbTypeOne
size_t GetNumI1 () const
 Get number of i1 values.
 
size_t GetNumI2 () const
 Get number of i2 values.
 

Static Public Member Functions

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

Additional Inherited Members

- Protected Attributes inherited from ns3::NrCbTypeOne
bool m_isDualPol {NR_CB_TYPE_ONE_INIT_POL}
 3GPP n1-n2 config (num vert gNB ports)
 
size_t m_n1 {NR_CB_TYPE_ONE_INIT_N1}
 
size_t m_n2 {NR_CB_TYPE_ONE_INIT_N2}
 3GPP n1-n2 config (num horiz gNB ports)
 
size_t m_nPorts {NR_CB_TYPE_ONE_INIT_NPORTS}
 Number of possible subband indices (i2)
 
size_t m_numI1 {NR_CB_TYPE_ONE_INIT_NI1}
 Number of MIMO layers.
 
size_t m_numI2 {NR_CB_TYPE_ONE_INIT_NI2}
 Number of possible wideband indices (i1)
 
uint8_t m_rank {NR_CB_TYPE_ONE_INIT_RANK}
 Defines if gNB antennas are dual-polarized.
 

Detailed Description

Implementation of the two-port codebook in 3GPP TS 38.214 This class implements a codebook for a gNB with at most 2 antenna ports. For a single port, it returns single-element matrix with value 1.0. For two ports, it implements Table 5.2.2.2.1-1: Codebooks for 1-layer and 2-layer CSI reporting using antenna ports 3000 to 3001. There is a slight abuse of notation: For the "codebook index", the i2 index of other Type-I codebooks is used, and the i1 index remains unused.

Introspection did not find any typical Config paths.
No Attributes are defined for this type.

Attributes defined in parent class ns3::NrCbTypeOne

  • N1: N1 (number of horizontal ports at the gNB)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:255
    • Initial value: 1
    • Flags: construct write read
  • N2: N2 (number of vertical ports at the gNB)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:255
    • Initial value: 1
    • Flags: construct write read
  • IsDualPol: True if the gNB antennas are dual-polarized
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • Rank: Rank (number of MIMO layers)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:255
    • Initial value: 1
    • Flags: construct write read

No TraceSources are defined for this type.
Size of this type is 104 bytes (on a 64-bit architecture).

Definition at line 18 of file nr-cb-two-port.h.

Member Function Documentation

◆ GetBasePrecMat()

ComplexMatrixArray ns3::NrCbTwoPort::GetBasePrecMat ( size_t  i1,
size_t  i2 
) const
overridevirtual

Get the 2D precoding matrix.

Parameters
i1the index of the wideband precoding (always 0 for this codebook)
i2the index of the subband precoding (the "codebook index" in Table 5.2.2.2.1-1)
Returns
the precoding matrix of size m_nPorts x m_rank

Implements ns3::NrCbTypeOne.

Definition at line 34 of file nr-cb-two-port.cc.

References ns3::NrCbTypeOne::m_nPorts, ns3::NrCbTypeOne::m_numI1, ns3::NrCbTypeOne::m_numI2, and ns3::NrCbTypeOne::m_rank.

◆ GetTypeId()

TypeId ns3::NrCbTwoPort::GetTypeId ( )
static

Get TypeId.

Returns
the TypeId

Definition at line 14 of file nr-cb-two-port.cc.

Referenced by ns3::NrPmSearchFull::GetTypeId().

+ Here is the caller graph for this function:

◆ Init()

void ns3::NrCbTwoPort::Init ( )
overridevirtual

Initialize the codebook parameters after construction, based on attribute values.

Implements ns3::NrCbTypeOne.

Definition at line 22 of file nr-cb-two-port.cc.

References ns3::NrCbTypeOne::m_isDualPol, ns3::NrCbTypeOne::m_n2, ns3::NrCbTypeOne::m_nPorts, ns3::NrCbTypeOne::m_numI1, ns3::NrCbTypeOne::m_numI2, and ns3::NrCbTypeOne::m_rank.


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