A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::LogDistancePropagationLossModel Class Reference

a log distance propagation model. More...

#include <propagation-loss-model.h>

+ Inheritance diagram for ns3::LogDistancePropagationLossModel:
+ Collaboration diagram for ns3::LogDistancePropagationLossModel:

Public Member Functions

 LogDistancePropagationLossModel ()
 
double GetPathLossExponent (void) const
 
void SetPathLossExponent (double n)
 
void SetReference (double referenceDistance, double referenceLoss)
 
- Public Member Functions inherited from ns3::PropagationLossModel
 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
 
Ptr< PropagationLossModelGetNext ()
 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...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::PropagationLossModel
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

 LogDistancePropagationLossModel (const LogDistancePropagationLossModel &o)
 
virtual int64_t DoAssignStreams (int64_t stream)
 Subclasses must implement this; those not using random variables can return zero. More...
 
virtual double DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
 
LogDistancePropagationLossModeloperator= (const LogDistancePropagationLossModel &o)
 

Static Private Member Functions

static Ptr< PropagationLossModelCreateDefaultReference (void)
 

Private Attributes

double m_exponent
 
double m_referenceDistance
 
double m_referenceLoss
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

a log distance propagation model.

This model calculates the reception power with a so-called log-distance propagation model: $ L = L_0 + 10 n log_{10}(\frac{d}{d_0})$

where:

  • $ n $ : the path loss distance exponent
  • $ d_0 $ : reference distance (m)
  • $ L_0 $ : path loss at reference distance (dB)
  • $ d $ : distance (m)
  • $ L $ : path loss (dB)

When the path loss is requested at a distance smaller than the reference distance, the tx power is returned.

Config Paths

ns3::LogDistancePropagationLossModel is accessible through the following paths with Config::Set and Config::Connect:

  • /ChannelList/[i]/$ns3::WifiChannel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::LogDistancePropagationLossModel
  • /ChannelList/[i]/$ns3::YansWifiChannel/PropagationLossModel/$ns3::LogDistancePropagationLossModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Channel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::LogDistancePropagationLossModel

Attributes

  • Exponent: The exponent of the Path Loss propagation model
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 3
    • Flags: construct write read
  • ReferenceDistance: The distance at which the reference loss is calculated (m)
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • ReferenceLoss: The reference loss at reference distance (dB). (Default is Friis at 1m with 5.15 GHz)
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 46.6777
    • Flags: construct write read

No TraceSources are defined for this type.

Definition at line 389 of file propagation-loss-model.h.

Constructor & Destructor Documentation

ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel ( )

Definition at line 484 of file propagation-loss-model.cc.

ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel ( const LogDistancePropagationLossModel o)
private

Member Function Documentation

static Ptr<PropagationLossModel> ns3::LogDistancePropagationLossModel::CreateDefaultReference ( void  )
staticprivate
int64_t ns3::LogDistancePropagationLossModel::DoAssignStreams ( int64_t  stream)
privatevirtual

Subclasses must implement this; those not using random variables can return zero.

Implements ns3::PropagationLossModel.

Definition at line 537 of file propagation-loss-model.cc.

double ns3::LogDistancePropagationLossModel::DoCalcRxPower ( double  txPowerDbm,
Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const
privatevirtual

The formula is: rx = 10 * log (Pr0(tx)) - n * 10 * log (d/d0)

Pr0: rx power at reference distance d0 (W) d0: reference distance: 1.0 (m) d: distance (m) tx: tx power (dB) rx: dB

Which, in our case is:

rx = rx0(tx) - 10 * n * log (d/d0)

Implements ns3::PropagationLossModel.

Definition at line 506 of file propagation-loss-model.cc.

References ns3::MobilityModel::GetDistanceFrom(), m_exponent, m_referenceDistance, m_referenceLoss, and NS_LOG_DEBUG.

+ Here is the call graph for this function:

double ns3::LogDistancePropagationLossModel::GetPathLossExponent ( void  ) const
Returns
the current path loss exponent.

Definition at line 500 of file propagation-loss-model.cc.

References m_exponent.

TypeId ns3::LogDistancePropagationLossModel::GetTypeId ( void  )
static

Definition at line 459 of file propagation-loss-model.cc.

References m_exponent, m_referenceDistance, m_referenceLoss, and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

LogDistancePropagationLossModel& ns3::LogDistancePropagationLossModel::operator= ( const LogDistancePropagationLossModel o)
private
void ns3::LogDistancePropagationLossModel::SetPathLossExponent ( double  n)
Parameters
nthe path loss exponent. Set the path loss exponent.

Definition at line 489 of file propagation-loss-model.cc.

References m_exponent.

void ns3::LogDistancePropagationLossModel::SetReference ( double  referenceDistance,
double  referenceLoss 
)

Definition at line 494 of file propagation-loss-model.cc.

References m_referenceDistance, and m_referenceLoss.

Member Data Documentation

double ns3::LogDistancePropagationLossModel::m_exponent
private
double ns3::LogDistancePropagationLossModel::m_referenceDistance
private

Definition at line 417 of file propagation-loss-model.h.

Referenced by DoCalcRxPower(), GetTypeId(), and SetReference().

double ns3::LogDistancePropagationLossModel::m_referenceLoss
private

Definition at line 418 of file propagation-loss-model.h.

Referenced by DoCalcRxPower(), GetTypeId(), and SetReference().


The documentation for this class was generated from the following files: