ns-3
ns3::FriisPropagationLossModel Class Reference

a Friis propagation loss model More...

#include <propagation-loss-model.h>

Inheritance diagram for ns3::FriisPropagationLossModel:
Collaboration diagram for ns3::FriisPropagationLossModel:

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
- 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::FriisPropagationLossModel.

Detailed Description

a Friis propagation loss model

The Friis propagation loss model was first described in "A Note on a Simple Transmission Formula", by "Harald T. Friis".

The original equation was described as: $ \frac{P_r}{P_t} = \frac{A_r A_t}{d^2\lambda^2} $ with the following equation for the case of an isotropic antenna with no heat loss: $ A_{isotr.} = \frac{\lambda^2}{4\pi} $

The final equation becomes: $ \frac{P_r}{P_t} = \frac{\lambda^2}{(4 \pi d)^2} $

Modern extensions to this original equation are: $ P_r = \frac{P_t G_t G_r \lambda^2}{(4 \pi d)^2 L}$

With:

  • $ P_r $ : reception power (W)
  • $ P_t $ : transmission power (W)
  • $ G_t $ : transmission gain (unit-less)
  • $ G_r $ : reception gain (unit-less)
  • $ \lambda $ : wavelength (m)
  • $ d $ : distance (m)
  • $ L $ : system loss (unit-less)

This model is invalid for small distance values. The current implementation returns the txpower as the rxpower for any distance smaller than MinDistance.


Member Function Documentation

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

Referenced by GetTypeId().

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

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

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::FriisPropagationLossModel

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

No TraceSources defined for this type.

Reimplemented from ns3::PropagationLossModel.

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

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

Set the main wavelength used in the Friis model calculation.

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

Set the main wavelength used in the Friis model calculation.

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

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

Referenced by GetTypeId().

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

Set the system loss used by the Friis propagation model.


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