Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the UMa scenario. More...
#include "three-gpp-propagation-loss-model.h"
Public Member Functions | |
ThreeGppUmaPropagationLossModel () | |
Constructor. More... | |
ThreeGppUmaPropagationLossModel (const ThreeGppUmaPropagationLossModel &)=delete | |
Copy constructor. More... | |
virtual | ~ThreeGppUmaPropagationLossModel () override |
Destructor. More... | |
ThreeGppUmaPropagationLossModel & | operator= (const ThreeGppUmaPropagationLossModel &)=delete |
Copy constructor. More... | |
![]() | |
ThreeGppPropagationLossModel () | |
Constructor. More... | |
ThreeGppPropagationLossModel (const ThreeGppPropagationLossModel &)=delete | |
Copy constructor. More... | |
virtual | ~ThreeGppPropagationLossModel () override |
Destructor. More... | |
Ptr< ChannelConditionModel > | GetChannelConditionModel (void) const |
Returns the associated channel condition model. More... | |
double | GetFrequency (void) const |
Return the current central frequency. More... | |
ThreeGppPropagationLossModel & | operator= (const ThreeGppPropagationLossModel &)=delete |
Copy constructor. More... | |
void | SetChannelConditionModel (Ptr< ChannelConditionModel > model) |
Set the channel condition model used to determine the channel state (e.g., the LOS/NLOS condition) More... | |
void | SetFrequency (double f) |
Set the central frequency of the model. More... | |
![]() | |
PropagationLossModel () | |
virtual | ~PropagationLossModel () |
int64_t | AssignStreams (int64_t stream) |
If this loss model uses objects of type RandomVariableStream, set the stream numbers to the integers starting with the offset 'stream'. More... | |
double | CalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Returns the Rx Power taking into account all the PropagationLossModel(s) chained to the current one. More... | |
Ptr< PropagationLossModel > | GetNext () |
Gets the next PropagationLossModel in the chain of loss models that act on the signal. More... | |
void | SetNext (Ptr< PropagationLossModel > next) |
Enables a chain of loss models to act on the signal. 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) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
virtual int64_t | DoAssignStreams (int64_t stream) override |
If this model uses objects of type RandomVariableStream, set the stream numbers to the integers starting with the offset 'stream'. More... | |
double | GetBpDistance (double hUt, double hBs, double distance2D) const |
Computes the breakpoint distance. More... | |
double | GetLossLos (double distance2D, double distance3D, double hUt, double hBs) const override |
Computes the pathloss between a and b considering that the line of sight is not obstructed. More... | |
double | GetLossNlos (double distance2D, double distance3D, double hUt, double hBs) const override |
Computes the pathloss between a and b considering that the line of sight is obstructed. More... | |
virtual double | GetShadowingCorrelationDistance (ChannelCondition::LosConditionValue cond) const override |
Returns the shadow fading correlation distance. More... | |
virtual double | GetShadowingStd (Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override |
Returns the shadow fading standard deviation. More... | |
Private Attributes | |
Ptr< UniformRandomVariable > | m_uniformVar |
a uniform random variable used for the computation of the breakpoint distance More... | |
Additional Inherited Members | |
![]() | |
virtual void | DoDispose () override |
Destructor implementation. More... | |
![]() | |
Object (const Object &o) | |
Copy an Object. 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 double | Calculate2dDistance (Vector a, Vector b) |
Computes the 2D distance between two 3D vectors. More... | |
![]() | |
Ptr< ChannelConditionModel > | m_channelConditionModel |
pointer to the channel condition model More... | |
double | m_frequency |
operating frequency in Hz More... | |
Ptr< NormalRandomVariable > | m_normRandomVariable |
normal random variable More... | |
bool | m_shadowingEnabled |
enable/disable shadowing More... | |
std::unordered_map< uint32_t, ShadowingMapItem > | m_shadowingMap |
map to store the shadowing values More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the UMa scenario.
ns3::ThreeGppUmaPropagationLossModel is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 136 bytes (on a 64-bit architecture).
Definition at line 359 of file three-gpp-propagation-loss-model.h.
ns3::ThreeGppUmaPropagationLossModel::ThreeGppUmaPropagationLossModel | ( | ) |
Constructor.
Definition at line 512 of file three-gpp-propagation-loss-model.cc.
References ns3::ThreeGppPropagationLossModel::m_channelConditionModel, m_uniformVar, and NS_LOG_FUNCTION.
|
overridevirtual |
Destructor.
Definition at line 522 of file three-gpp-propagation-loss-model.cc.
References NS_LOG_FUNCTION.
|
delete |
Copy constructor.
Defined and unimplemented to avoid misuse
|
overrideprivatevirtual |
If this model uses objects of type RandomVariableStream, set the stream numbers to the integers starting with the offset 'stream'.
Return the number of streams (possibly zero) that have been assigned.
stream |
Reimplemented from ns3::ThreeGppPropagationLossModel.
Definition at line 701 of file three-gpp-propagation-loss-model.cc.
References ns3::ThreeGppPropagationLossModel::m_normRandomVariable, m_uniformVar, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Computes the breakpoint distance.
hUt | height of the UT in meters |
hBs | height of the BS in meters |
distance2D | distance between the two nodes in meters |
Definition at line 528 of file three-gpp-propagation-loss-model.cc.
References ns3::UniformRandomVariable::GetInteger(), ns3::UniformRandomVariable::GetValue(), ns3::M_C, ns3::ThreeGppPropagationLossModel::m_frequency, m_uniformVar, and NS_LOG_FUNCTION.
Referenced by GetLossLos().
|
overrideprivatevirtual |
Computes the pathloss between a and b considering that the line of sight is not obstructed.
distance2D | the 2D distance between tx and rx in meters |
distance3D | the 3D distance between tx and rx in meters |
hUt | the height of the UT in meters |
hBs | the height of the BS in meters |
Implements ns3::ThreeGppPropagationLossModel.
Definition at line 566 of file three-gpp-propagation-loss-model.cc.
References GetBpDistance(), ns3::ThreeGppPropagationLossModel::m_frequency, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_WARN.
Referenced by GetLossNlos().
|
overrideprivatevirtual |
Computes the pathloss between a and b considering that the line of sight is obstructed.
distance2D | the 2D distance between tx and rx in meters |
distance3D | the 3D distance between tx and rx in meters |
hUt | the height of the UT in meters |
hBs | the height of the BS in meters |
Implements ns3::ThreeGppPropagationLossModel.
Definition at line 617 of file three-gpp-propagation-loss-model.cc.
References GetLossLos(), ns3::ThreeGppPropagationLossModel::m_frequency, max, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_WARN.
|
overrideprivatevirtual |
Returns the shadow fading correlation distance.
cond | the LOS/NLOS channel condition |
Implements ns3::ThreeGppPropagationLossModel.
Definition at line 678 of file three-gpp-propagation-loss-model.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
|
overrideprivatevirtual |
Returns the shadow fading standard deviation.
a | tx mobility model |
b | rx mobility model |
cond | the LOS/NLOS channel condition |
Implements ns3::ThreeGppPropagationLossModel.
Definition at line 654 of file three-gpp-propagation-loss-model.cc.
References NS_FATAL_ERROR, NS_LOG_FUNCTION, and NS_UNUSED.
|
static |
Get the type ID.
Definition at line 502 of file three-gpp-propagation-loss-model.cc.
References ns3::TypeId::SetParent().
|
delete |
Copy constructor.
Defined and unimplemented to avoid misuse
|
private |
a uniform random variable used for the computation of the breakpoint distance
Definition at line 452 of file three-gpp-propagation-loss-model.h.
Referenced by ThreeGppUmaPropagationLossModel(), DoAssignStreams(), and GetBpDistance().