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... | |
uint32_t | GetId () const |
Returns the ID of this antenna array instance. 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... | |
Public Member Functions inherited from ns3::Object | |
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... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
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) |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
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... | |
uint32_t | m_id {0} |
the ID of this antenna array instance More... | |
bool | m_isBfVectorValid |
ensures the validity of the beamforming vector More... | |
Static Protected Attributes | |
static uint32_t | m_idCounter = 0 |
the ID counter that is used to determine the unique antenna array ID More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
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... | |
Protected Member Functions inherited from ns3::ObjectBase | |
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... | |
Related Functions inherited from ns3::ObjectBase | |
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 57 of file phased-array-model.h.
ns3::PhasedArrayModel::PhasedArrayModel | ( | void | ) |
|
virtual |
|
staticprotected |
Utility method to compute the euclidean norm of a ComplexVector.
vector | the ComplexVector |
Definition at line 107 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 165 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 122 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 98 of file phased-array-model.cc.
References m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by ThreeGppSpectrumPropagationLossModelTest::DoBeamforming(), and ThreeGppSpectrumPropagationLossModelTest::DoRun().
|
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 DoBeamforming(), and GetSteeringVector().
uint32_t ns3::PhasedArrayModel::GetId | ( | ) | const |
Returns the ID of this antenna array instance.
Definition at line 172 of file phased-array-model.cc.
References m_id.
|
pure virtual |
Returns the number of antenna elements.
Implemented in ns3::UniformPlanarArray.
Referenced by DoBeamforming(), ThreeGppChannelMatrixComputationTest::DoComputeNorm(), 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 140 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 71 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 157 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 87 of file phased-array-model.cc.
References GetNumberOfElements(), m_beamformingVector, m_isBfVectorValid, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by DoBeamforming(), ThreeGppSpectrumPropagationLossModelTest::DoBeamforming(), and ThreeGppSpectrumPropagationLossModelTest::DoRun().
|
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 ~PhasedArrayModel(), GetBeamformingVector(), and SetBeamformingVector().
|
protected |
the ID of this antenna array instance
Definition at line 147 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 146 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().