Class implementing the phased array model virtual base class. More...
#include "phased-array-model.h"
Public Types | |
typedef std::vector< std::complex< double > > | ComplexVector |
type definition for complex vectors More... | |
Public Member Functions | |
PhasedArrayModel (void) | |
Constructor. More... | |
virtual | ~PhasedArrayModel (void) |
Destructor. More... | |
Ptr< const AntennaModel > | GetAntennaElement (void) const |
Returns a pointer to the AntennaModel instance used to model the elements of the array. More... | |
ComplexVector | GetBeamformingVector (Angles a) const |
Returns the beamforming vector that points towards the specified position. More... | |
ComplexVector | GetBeamformingVector (void) const |
Returns the beamforming vector that is currently being used. More... | |
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. More... | |
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. More... | |
virtual uint64_t | GetNumberOfElements (void) const =0 |
Returns the number of antenna elements. More... | |
ComplexVector | GetSteeringVector (Angles a) const |
Returns the steering vector that points toward the specified position. More... | |
void | SetAntennaElement (Ptr< AntennaModel > antennaElement) |
Sets the antenna model to be used. More... | |
void | SetBeamformingVector (const ComplexVector &beamformingVector) |
Sets the beamforming vector to be used. More... | |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Get the most derived TypeId for this Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) const |
Check if the object has been initialized. More... | |
![]() | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Static Protected Member Functions | |
static double | ComputeNorm (const ComplexVector &vector) |
Utility method to compute the euclidean norm of a ComplexVector. More... | |
Protected Attributes | |
Ptr< AntennaModel > | m_antennaElement |
the model of the antenna element in use More... | |
ComplexVector | m_beamformingVector |
the beamforming vector in use More... | |
bool | m_isBfVectorValid |
ensures the validity of the beamforming vector More... | |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
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 72 bytes (on a 64-bit architecture).
Definition at line 35 of file phased-array-model.h.
typedef std::vector<std::complex<double> > ns3::PhasedArrayModel::ComplexVector |
type definition for complex vectors
Definition at line 54 of file phased-array-model.h.
ns3::PhasedArrayModel::PhasedArrayModel | ( | void | ) |
Constructor.
Definition at line 55 of file phased-array-model.cc.
|
virtual |
|
staticprotected |
Utility method to compute the euclidean norm of a ComplexVector.
vector | the ComplexVector |
Definition at line 103 of file phased-array-model.cc.
References MRG32k3a::norm.
Referenced by GetBeamformingVector().
Ptr< const AntennaModel > ns3::PhasedArrayModel::GetAntennaElement | ( | void | ) | const |
Returns a pointer to the AntennaModel instance used to model the elements of the array.
Definition at line 161 of file phased-array-model.cc.
References m_antennaElement, 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 118 of file phased-array-model.cc.
References ComputeNorm(), GetSteeringVector(), MRG32k3a::norm, and NS_LOG_FUNCTION.
PhasedArrayModel::ComplexVector ns3::PhasedArrayModel::GetBeamformingVector | ( | void | ) | 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.
|
pure virtual |
Returns the horizontal and vertical components of the antenna element field pattern at the specified direction.
Only vertical 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.
idx | index of the antenna element |
Implemented in ns3::UniformPlanarArray.
Referenced by GetSteeringVector().
|
pure virtual |
Returns the number of antenna elements.
Implemented in ns3::UniformPlanarArray.
Referenced by 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 136 of file phased-array-model.cc.
References ns3::Angles::GetAzimuth(), GetElementLocation(), ns3::Angles::GetInclination(), and GetNumberOfElements().
Referenced by GetBeamformingVector().
|
static |
Definition at line 67 of file phased-array-model.cc.
References m_antennaElement, ns3::MakePointerAccessor(), and ns3::TypeId::SetParent().
void ns3::PhasedArrayModel::SetAntennaElement | ( | Ptr< AntennaModel > | antennaElement | ) |
Sets the antenna model to be used.
antennaElement | the antenna model |
Definition at line 153 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 83 of file phased-array-model.cc.
References GetNumberOfElements(), m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
protected |
the model of the antenna element in use
Definition at line 135 of file phased-array-model.h.
Referenced by GetAntennaElement(), ns3::UniformPlanarArray::GetElementFieldPattern(), GetTypeId(), and SetAntennaElement().
|
protected |
the beamforming vector in use
Definition at line 134 of file phased-array-model.h.
Referenced by ~PhasedArrayModel(), GetBeamformingVector(), and SetBeamformingVector().
|
protected |
ensures the validity of the beamforming vector
Definition at line 136 of file phased-array-model.h.
Referenced by GetBeamformingVector(), ns3::UniformPlanarArray::SetAntennaHorizontalSpacing(), ns3::UniformPlanarArray::SetAntennaVerticalSpacing(), SetBeamformingVector(), ns3::UniformPlanarArray::SetNumColumns(), and ns3::UniformPlanarArray::SetNumRows().