Class implementing the phased array model virtual base class. More...
#include "phased-array-model.h"
Public Types | |
using | ComplexVector = ComplexMatrixArray |
the underlying Valarray | |
Public Member Functions | |
PhasedArrayModel () | |
Constructor. | |
~PhasedArrayModel () override | |
Destructor. | |
virtual uint16_t | ArrayIndexFromPortIndex (uint16_t portIndex, uint16_t subElementIndex) const =0 |
Calculate the index in the antenna array from the port index and the element in the port. | |
Ptr< const AntennaModel > | GetAntennaElement () const |
Returns a pointer to the AntennaModel instance used to model the elements of the array. | |
ComplexVector | GetBeamformingVector () const |
Returns the beamforming vector that is currently being used. | |
ComplexVector | GetBeamformingVector (Angles a) const |
Returns the beamforming vector that points towards the specified position. | |
const PhasedArrayModel::ComplexVector & | GetBeamformingVectorRef () const |
Returns the const reference of the beamforming vector that is currently being used. | |
virtual std::pair< double, double > | GetElementFieldPattern (Angles a, uint8_t polIndex=0) const =0 |
Returns the horizontal and vertical components of the antenna element field pattern at the specified direction. | |
virtual Vector | GetElementLocation (uint64_t index) const =0 |
Returns the location of the antenna element with the specified index, normalized with respect to the wavelength. | |
virtual uint8_t | GetElemPol (size_t elementIndex) const =0 |
Returns the index of the polarization to which belongs that antenna element. | |
virtual size_t | GetHElemsPerPort () const =0 |
Get the horizontal number of antenna elements per port. | |
uint32_t | GetId () const |
Returns the ID of this antenna array instance. | |
virtual uint32_t | GetNumColumns () const =0 |
Get the number of columns. | |
virtual size_t | GetNumElems () const =0 |
Returns the number of antenna elements. | |
virtual size_t | GetNumElemsPerPort () const =0 |
Get the number of elements per port. | |
virtual uint16_t | GetNumHorizontalPorts () const =0 |
Get the horizontal number of ports. | |
virtual uint8_t | GetNumPols () const =0 |
Get the number of polarizations. | |
virtual uint16_t | GetNumPorts () const =0 |
Get the number of ports. | |
virtual uint32_t | GetNumRows () const =0 |
Get the number of rows. | |
virtual uint16_t | GetNumVerticalPorts () const =0 |
Get the vertical number of ports. | |
virtual double | GetPolSlant () const =0 |
Get the polarization slant angle. | |
ComplexVector | GetSteeringVector (Angles a) const |
Returns the steering vector that points toward the specified position. | |
virtual size_t | GetVElemsPerPort () const =0 |
Get the vertical number of antenna elements per port. | |
virtual bool | IsDualPol () const =0 |
Get the indication whether the antenna array is dual polarized. | |
double | norm (const ComplexVector &complexVector) const |
Computes the Frobenius norm of the complex vector. | |
void | SetAntennaElement (Ptr< AntennaModel > antennaElement) |
Sets the antenna model to be used. | |
void | SetBeamformingVector (const ComplexVector &beamformingVector) |
Sets the beamforming vector to be used. | |
virtual void | SetNumColumns (uint32_t nColumns)=0 |
Set the number of columns. | |
virtual void | SetNumHorizontalPorts (uint16_t nPorts)=0 |
Set the horizontal number of ports. | |
virtual void | SetNumRows (uint32_t nRows)=0 |
Set the number of rows. | |
virtual void | SetNumVerticalPorts (uint16_t nPorts)=0 |
Set the vertical number of ports. | |
![]() | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
![]() | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
virtual TypeId | GetInstanceTypeId () const =0 |
Get the most derived TypeId for this Object. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
![]() | |
static TypeId | GetTypeId () |
Register this type. | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Attributes | |
Ptr< AntennaModel > | m_antennaElement |
the model of the antenna element in use | |
ComplexVector | m_beamformingVector |
the beamforming vector in use | |
uint32_t | m_id {0} |
the ID of this antenna array instance | |
bool | m_isBfVectorValid |
ensures the validity of the beamforming vector | |
Static Protected Attributes | |
static uint32_t | m_idCounter = 0 |
the ID counter that is used to determine the unique antenna array ID | |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoDispose () |
Destructor implementation. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Class implementing the phased array model virtual base class.
Introspection did not find any typical Config paths.
No TraceSources are defined for this type.
Size of this type is 104 bytes (on a 64-bit architecture).
Definition at line 37 of file phased-array-model.h.
the underlying Valarray
Definition at line 57 of file phased-array-model.h.
ns3::PhasedArrayModel::PhasedArrayModel | ( | ) |
|
override |
Destructor.
Definition at line 43 of file phased-array-model.cc.
|
pure virtual |
Calculate the index in the antenna array from the port index and the element in the port.
portIndex | the port index |
subElementIndex | the element index in the port |
Implemented in ns3::UniformPlanarArray.
Ptr< const AntennaModel > ns3::PhasedArrayModel::GetAntennaElement | ( | ) | const |
Returns a pointer to the AntennaModel instance used to model the elements of the array.
Definition at line 139 of file phased-array-model.cc.
References m_antennaElement, and NS_LOG_FUNCTION.
PhasedArrayModel::ComplexVector ns3::PhasedArrayModel::GetBeamformingVector | ( | ) | const |
Returns the beamforming vector that is currently being used.
Definition at line 73 of file phased-array-model.cc.
References m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
PhasedArrayModel::ComplexVector ns3::PhasedArrayModel::GetBeamformingVector | ( | Angles | a | ) | const |
Returns the beamforming vector that points towards the specified position.
a | the beamforming angle |
Definition at line 93 of file phased-array-model.cc.
References GetNumElems(), GetNumPorts(), GetSteeringVector(), MRG32k3a::norm, and NS_LOG_FUNCTION.
const PhasedArrayModel::ComplexVector & ns3::PhasedArrayModel::GetBeamformingVectorRef | ( | ) | const |
Returns the const reference of the beamforming vector that is currently being used.
Definition at line 83 of file phased-array-model.cc.
References m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
pure virtual |
Returns the horizontal and vertical components of the antenna element field pattern at the specified direction.
Single polarization is considered.
a | the angle indicating the interested direction |
polIndex | the index of the polarization for which will be retrieved the field pattern |
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Returns the location of the antenna element with the specified index, normalized with respect to the wavelength.
index | the index of the antenna element |
Implemented in ns3::UniformPlanarArray.
Referenced by GetSteeringVector().
|
pure virtual |
Returns the index of the polarization to which belongs that antenna element.
elementIndex | the antenna element for which will be returned the polarization index |
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the horizontal number of antenna elements per port.
Implemented in ns3::UniformPlanarArray.
uint32_t ns3::PhasedArrayModel::GetId | ( | ) | const |
Returns the ID of this antenna array instance.
Definition at line 146 of file phased-array-model.cc.
References m_id.
|
pure virtual |
Get the number of columns.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Returns the number of antenna elements.
Implemented in ns3::UniformPlanarArray.
Referenced by GetBeamformingVector(), GetSteeringVector(), and SetBeamformingVector().
|
pure virtual |
Get the number of elements per port.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the horizontal number of ports.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the number of polarizations.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the number of ports.
Implemented in ns3::UniformPlanarArray.
Referenced by GetBeamformingVector().
|
pure virtual |
Get the number of rows.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the vertical number of ports.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the polarization slant angle.
Implemented in ns3::UniformPlanarArray.
PhasedArrayModel::ComplexVector ns3::PhasedArrayModel::GetSteeringVector | ( | Angles | a | ) | const |
Returns the steering vector that points toward the specified position.
a | the steering angle |
Definition at line 116 of file phased-array-model.cc.
References ns3::Angles::GetAzimuth(), GetElementLocation(), ns3::Angles::GetInclination(), and GetNumElems().
Referenced by GetBeamformingVector().
|
static |
Get the type ID.
Definition at line 48 of file phased-array-model.cc.
References m_antennaElement, ns3::MakePointerAccessor(), and ns3::TypeId::SetParent().
|
pure virtual |
Get the vertical number of antenna elements per port.
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Get the indication whether the antenna array is dual polarized.
Implemented in ns3::UniformPlanarArray.
|
inline |
Computes the Frobenius norm of the complex vector.
complexVector | on which to calculate Frobenius norm |
Definition at line 65 of file phased-array-model.h.
References ns3::ValArray< T >::GetSize(), and MRG32k3a::norm.
void ns3::PhasedArrayModel::SetAntennaElement | ( | Ptr< AntennaModel > | antennaElement | ) |
Sets the antenna model to be used.
antennaElement | the antenna model |
Definition at line 132 of file phased-array-model.cc.
References m_antennaElement, and NS_LOG_FUNCTION.
void ns3::PhasedArrayModel::SetBeamformingVector | ( | const ComplexVector & | beamformingVector | ) |
Sets the beamforming vector to be used.
beamformingVector | the beamforming vector |
Definition at line 63 of file phased-array-model.cc.
References GetNumElems(), ns3::ValArray< T >::GetSize(), m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
pure virtual |
Set the number of columns.
nColumns | the number of columns to be set |
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Set the horizontal number of ports.
nPorts | the horizontal number of ports |
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Set the number of rows.
nRows | the number of rows to be set |
Implemented in ns3::UniformPlanarArray.
|
pure virtual |
Set the vertical number of ports.
nPorts | the vertical number of ports |
Implemented in ns3::UniformPlanarArray.
|
protected |
the model of the antenna element in use
Definition at line 259 of file phased-array-model.h.
Referenced by GetAntennaElement(), ns3::UniformPlanarArray::GetElementFieldPattern(), GetTypeId(), and SetAntennaElement().
|
protected |
the beamforming vector in use
Definition at line 258 of file phased-array-model.h.
Referenced by GetBeamformingVector(), GetBeamformingVectorRef(), and SetBeamformingVector().
|
protected |
the ID of this antenna array instance
Definition at line 263 of file phased-array-model.h.
Referenced by PhasedArrayModel(), and GetId().
|
staticprotected |
the ID counter that is used to determine the unique antenna array ID
Definition at line 262 of file phased-array-model.h.
Referenced by PhasedArrayModel().
|
protected |
ensures the validity of the beamforming vector
Definition at line 260 of file phased-array-model.h.
Referenced by GetBeamformingVector(), GetBeamformingVectorRef(), ns3::UniformPlanarArray::SetAntennaHorizontalSpacing(), ns3::UniformPlanarArray::SetAntennaVerticalSpacing(), SetBeamformingVector(), ns3::UniformPlanarArray::SetNumColumns(), and ns3::UniformPlanarArray::SetNumRows().