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. | |
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. | |
virtual std::pair< double, double > | GetElementFieldPattern (Angles a) 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. | |
uint32_t | GetId () const |
Returns the ID of this antenna array instance. | |
virtual size_t | GetNumberOfElements () const =0 |
Returns the number of antenna elements. | |
ComplexVector | GetSteeringVector (Angles a) const |
Returns the steering vector that points toward the specified position. | |
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. | |
Public Member Functions inherited from ns3::Object | |
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. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
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. | |
Public Member Functions inherited from ns3::ObjectBase | |
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 Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
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 | |
Protected Member Functions inherited from ns3::Object | |
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. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Functions inherited from ns3::ObjectBase | |
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 36 of file phased-array-model.h.
the underlying Valarray
Definition at line 56 of file phased-array-model.h.
ns3::PhasedArrayModel::PhasedArrayModel | ( | ) |
|
override |
Destructor.
Definition at line 64 of file phased-array-model.cc.
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 143 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 94 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 104 of file phased-array-model.cc.
References GetNumberOfElements(), GetSteeringVector(), MRG32k3a::norm, 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 |
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().
uint32_t ns3::PhasedArrayModel::GetId | ( | ) | const |
Returns the ID of this antenna array instance.
Definition at line 150 of file phased-array-model.cc.
References m_id.
|
pure virtual |
Returns the number of antenna elements.
Implemented in ns3::UniformPlanarArray.
Referenced by GetBeamformingVector(), GetSteeringVector(), and SetBeamformingVector().
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 120 of file phased-array-model.cc.
References ns3::Angles::GetAzimuth(), GetElementLocation(), ns3::Angles::GetInclination(), and GetNumberOfElements().
Referenced by GetBeamformingVector().
|
static |
Get the type ID.
Definition at line 69 of file phased-array-model.cc.
References m_antennaElement, ns3::MakePointerAccessor(), and ns3::TypeId::SetParent().
|
inline |
Computes the Frobenius norm of the complex vector.
complexVector | on which to calculate Frobenius norm |
Definition at line 64 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 136 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 84 of file phased-array-model.cc.
References GetNumberOfElements(), ns3::ValArray< T >::GetSize(), m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
protected |
the model of the antenna element in use
Definition at line 144 of file phased-array-model.h.
Referenced by GetAntennaElement(), ns3::UniformPlanarArray::GetElementFieldPattern(), GetTypeId(), and SetAntennaElement().
|
protected |
the beamforming vector in use
Definition at line 143 of file phased-array-model.h.
Referenced by GetBeamformingVector(), and SetBeamformingVector().
|
protected |
the ID of this antenna array instance
Definition at line 148 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 147 of file phased-array-model.h.
Referenced by PhasedArrayModel().
|
protected |
ensures the validity of the beamforming vector
Definition at line 145 of file phased-array-model.h.
Referenced by GetBeamformingVector(), ns3::UniformPlanarArray::SetAntennaHorizontalSpacing(), ns3::UniformPlanarArray::SetAntennaVerticalSpacing(), SetBeamformingVector(), ns3::UniformPlanarArray::SetNumColumns(), and ns3::UniformPlanarArray::SetNumRows().