ns-3
ns3::TwoRayGroundPropagationLossModel Class Reference

a Two-Ray Ground propagation loss model ported from NS2 More...

#include <propagation-loss-model.h>

Inheritance diagram for ns3::TwoRayGroundPropagationLossModel:
Collaboration diagram for ns3::TwoRayGroundPropagationLossModel:

List of all members.

Public Member Functions

void SetLambda (double frequency, double speed)
void SetLambda (double lambda)
void SetSystemLoss (double systemLoss)
void SetMinDistance (double minDistance)
double GetMinDistance (void) const
double GetLambda (void) const
double GetSystemLoss (void) const
void SetHeightAboveZ (double heightAboveZ)
- Public Member Functions inherited from ns3::PropagationLossModel
void SetNext (Ptr< PropagationLossModel > next)
 Enables a chain of loss models to act on the signal.
double CalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
- Public Member Functions inherited from ns3::Object
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Dispose (void)
void AggregateObject (Ptr< Object > other)
AggregateIterator GetAggregateIterator (void) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
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)
 This method returns the TypeId associated to ns3::TwoRayGroundPropagationLossModel.

Detailed Description

a Two-Ray Ground propagation loss model ported from NS2

Two-ray ground reflection model.

$ Pr = \frac{Pt * Gt * Gr * (ht^2 * hr^2)}{d^4 * L} $

The original equation in Rappaport's book assumes L = 1. To be consistent with the free space equation, L is added here.

Ht and Hr are set at the respective nodes z coordinate plus a model parameter set via SetHeightAboveZ.

The two-ray model does not give a good result for short distances, due to the oscillation caused by constructive and destructive combination of the two rays. Instead the Friis free-space model is used for small distances.

The crossover distance, below which Friis is used, is calculated as follows:

$ dCross = \frac{(4 * pi * Ht * Hr)}{lambda} $


Member Function Documentation

double ns3::TwoRayGroundPropagationLossModel::GetLambda ( void  ) const
Returns:
the current wavelength (m)
double ns3::TwoRayGroundPropagationLossModel::GetMinDistance ( void  ) const
Returns:
the minimum distance.

Referenced by GetTypeId().

double ns3::TwoRayGroundPropagationLossModel::GetSystemLoss ( void  ) const
Returns:
the current system loss (dimension-less)
TypeId ns3::TwoRayGroundPropagationLossModel::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::TwoRayGroundPropagationLossModel.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Channel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::TwoRayGroundPropagationLossModel

Attributes defined for this type:

  • Lambda: The wavelength (default is 5.15 GHz at 300 000 km/s).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.0582524
    • Flags: construct write read
  • SystemLoss: The system loss
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • MinDistance: The distance under which the propagation model refuses to give results (m)
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.5
    • Flags: construct write read
  • HeightAboveZ: The height of the antenna (m) above the node's Z coordinate
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read

No TraceSources defined for this type.

Reimplemented from ns3::PropagationLossModel.

References GetMinDistance(), SetMinDistance(), and ns3::TypeId::SetParent().

void ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ ( double  heightAboveZ)
Parameters:
heightAboveZthe model antenna height above the node's Z coordinate

Set the model antenna height above the node's Z coordinate

void ns3::TwoRayGroundPropagationLossModel::SetLambda ( double  frequency,
double  speed 
)
Parameters:
frequency(Hz)
speed(m/s)

Set the main wavelength used in the TwoRayGround model calculation.

void ns3::TwoRayGroundPropagationLossModel::SetLambda ( double  lambda)
Parameters:
lambda(m) the wavelength

Set the main wavelength used in the TwoRayGround model calculation.

void ns3::TwoRayGroundPropagationLossModel::SetMinDistance ( double  minDistance)
Parameters:
minDistancethe minimum distance

Below this distance, the txpower is returned unmodified as the rxpower.

Referenced by GetTypeId().

void ns3::TwoRayGroundPropagationLossModel::SetSystemLoss ( double  systemLoss)
Parameters:
systemLoss(dimension-less)

Set the system loss used by the TwoRayGround propagation model.


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