5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
|
Antenna array management. More...
#include "beam-manager.h"
Public Types | |
typedef std::map< const Ptr< const NetDevice >, BeamformingVector > | BeamformingStorage |
Public Member Functions | |
BeamManager () | |
BeamManager constructor. | |
~BeamManager () override | |
~BeamManager | |
virtual void | ChangeBeamformingVector (const Ptr< const NetDevice > &device) |
Change the beamforming vector for tx/rx to/from specified device. | |
virtual void | ChangeToQuasiOmniBeamformingVector () |
Change current beamforming vector to quasi-omni beamforming vector. | |
void | Configure (const Ptr< UniformPlanarArray > &antennaArray) |
Configures quasi-omni beamforming vector. | |
Ptr< const UniformPlanarArray > | GetAntenna () const |
Get a pointer to the current antenna. | |
virtual PhasedArrayModel::ComplexVector | GetBeamformingVector (const Ptr< NetDevice > &device) const |
Function that returns the beamforming vector weights that is used to communicated with a specified device. | |
BeamId | GetBeamId (const BeamformingVector &v) const |
Extract the beam id from the beamforming vector specified. | |
virtual BeamId | GetBeamId (const Ptr< NetDevice > &device) const |
Function that returns the beamId of the beam that is used to communicated with a specified device. | |
virtual PhasedArrayModel::ComplexVector | GetCurrentBeamformingVector () |
Function that returns the beamforming vector that is currently being used by the antenna. | |
PhasedArrayModel::ComplexVector | GetVector (const BeamformingVector &v) const |
Get weight vector from a BeamformingVector. | |
virtual void | SaveBeamformingVector (const BeamformingVector &bfv, const Ptr< const NetDevice > &device) |
Function that saves the beamforming weights of the antenna for transmission or reception to/from a specified connected device. | |
void | SetPredefinedBeam (PhasedArrayModel::ComplexVector predefinedBeam) |
void | SetPredefinedBeam (uint16_t sector, double elevation) |
configures a predefined beam to use for directional transmissions | |
void | SetSector (uint16_t sector, double elevation) const |
Set the Sector. | |
void | SetSectorAz (double azimuth, double zenith) const |
Set the Sector. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
GetTypeId. | |
Antenna array management.
BeamManager is responsible of installation and configuration of antenna array. Additionally, in the case of gNB it saves the map of beamforming vectors per device.
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 272 bytes (on a 64-bit architecture).
Definition at line 32 of file beam-manager.h.
typedef std::map<const Ptr<const NetDevice>, BeamformingVector> ns3::BeamManager::BeamformingStorage |
BeamformingStorage type used to save the map of beamforming vectors per device
Definition at line 93 of file beam-manager.h.
ns3::BeamManager::BeamManager | ( | ) |
BeamManager constructor.
Definition at line 19 of file beam-manager.cc.
|
override |
~BeamManager
Definition at line 49 of file beam-manager.cc.
|
virtual |
Change the beamforming vector for tx/rx to/from specified device.
device | Device to change the beamforming vector for |
Definition at line 108 of file beam-manager.cc.
References ChangeToQuasiOmniBeamformingVector().
|
virtual |
Change current beamforming vector to quasi-omni beamforming vector.
Before configuring omni beamforming vector, we want to make sure that it is being calculated with the actual number of antenna rows and columns. We want to avoid recalculations, if these numbers didn't change. Which will normally be the case.
Definition at line 142 of file beam-manager.cc.
References ns3::CreateQuasiOmniBfv(), and ns3::OMNI_BEAM_ID.
Referenced by ChangeBeamformingVector(), and Configure().
void ns3::BeamManager::Configure | ( | const Ptr< UniformPlanarArray > & | antennaArray | ) |
Configures quasi-omni beamforming vector.
antennaArray | the antenna array |
Definition at line 25 of file beam-manager.cc.
References ChangeToQuasiOmniBeamformingVector().
Ptr< const UniformPlanarArray > ns3::BeamManager::GetAntenna | ( | ) | const |
Get a pointer to the current antenna.
Definition at line 44 of file beam-manager.cc.
|
virtual |
Function that returns the beamforming vector weights that is used to communicated with a specified device.
Definition at line 172 of file beam-manager.cc.
BeamId ns3::BeamManager::GetBeamId | ( | const BeamformingVector & | v | ) | const |
Extract the beam id from the beamforming vector specified.
v | the beamforming vector |
Definition at line 38 of file beam-manager.cc.
|
virtual |
Function that returns the beamId of the beam that is used to communicated with a specified device.
Definition at line 198 of file beam-manager.cc.
References ns3::OMNI_BEAM_ID.
|
virtual |
Function that returns the beamforming vector that is currently being used by the antenna.
Definition at line 136 of file beam-manager.cc.
|
static |
GetTypeId.
Definition at line 55 of file beam-manager.cc.
Referenced by ns3::NrHelper::NrHelper().
PhasedArrayModel::ComplexVector ns3::BeamManager::GetVector | ( | const BeamformingVector & | v | ) | const |
Get weight vector from a BeamformingVector.
v | the BeamformingVector |
Definition at line 32 of file beam-manager.cc.
|
virtual |
Function that saves the beamforming weights of the antenna for transmission or reception to/from a specified connected device.
bfv | the unique identifier of the beam |
device | device to which it is being transmitted, or from which is being received |
Definition at line 82 of file beam-manager.cc.
void ns3::BeamManager::SetPredefinedBeam | ( | PhasedArrayModel::ComplexVector | predefinedBeam | ) |
Definition at line 63 of file beam-manager.cc.
void ns3::BeamManager::SetPredefinedBeam | ( | uint16_t | sector, |
double | elevation | ||
) |
configures a predefined beam to use for directional transmissions
sector | specifies the sector of the beam to be configured |
elevation | specifies the elevation angle of the beam to be configured |
Definition at line 74 of file beam-manager.cc.
References ns3::CreateDirectionalBfv().
void ns3::BeamManager::SetSector | ( | uint16_t | sector, |
double | elevation | ||
) | const |
Set the Sector.
sector | sector |
elevation | elevation |
Definition at line 223 of file beam-manager.cc.
References ns3::CreateDirectionalBfv().
void ns3::BeamManager::SetSectorAz | ( | double | azimuth, |
double | zenith | ||
) | const |
Set the Sector.
azimuth | azimuth |
zenith | zenith |
Definition at line 230 of file beam-manager.cc.
References ns3::CreateDirectionalBfvAz().