ns3::FriisPropagationLossModel Class Reference

a Friis propagation loss model More...

#include <propagation-loss-model.h>

Inheritance diagram for ns3::FriisPropagationLossModel:
Inheritance graph
[legend]
Collaboration diagram for ns3::FriisPropagationLossModel:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 FriisPropagationLossModel ()
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

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::FriisPropagationLossModel.

Private Member Functions

 FriisPropagationLossModel (const FriisPropagationLossModel &o)
FriisPropagationLossModeloperator= (const FriisPropagationLossModel &o)
virtual double DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
double DbmToW (double dbm) const
double DbmFromW (double w) const

Private Attributes

double m_lambda
double m_systemLoss
double m_minDistance

Static Private Attributes

static const double PI = 3.1415

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:

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

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


Constructor & Destructor Documentation

ns3::FriisPropagationLossModel::FriisPropagationLossModel (  ) 

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

ns3::FriisPropagationLossModel::FriisPropagationLossModel ( const FriisPropagationLossModel o  )  [private]

Member Function Documentation

double ns3::FriisPropagationLossModel::DbmFromW ( double  w  )  const [private]

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

double ns3::FriisPropagationLossModel::DbmToW ( double  dbm  )  const [private]

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

double ns3::FriisPropagationLossModel::DoCalcRxPower ( double  txPowerDbm,
Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const [private, virtual]

Implements ns3::PropagationLossModel.

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

References m_lambda, m_minDistance, m_systemLoss, NS_LOG_DEBUG, and PI.

double ns3::FriisPropagationLossModel::GetLambda ( void   )  const
Returns:
the current wavelength (m)

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

References m_lambda.

double ns3::FriisPropagationLossModel::GetMinDistance ( void   )  const
Returns:
the minimum distance.

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

References m_minDistance.

Referenced by GetTypeId().

double ns3::FriisPropagationLossModel::GetSystemLoss ( void   )  const
Returns:
the current system loss (dimention-less)

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

References m_systemLoss.

TypeId ns3::FriisPropagationLossModel::GetTypeId ( void   )  [static]

This method returns the TypeId associated to 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.

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

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

FriisPropagationLossModel& ns3::FriisPropagationLossModel::operator= ( const FriisPropagationLossModel o  )  [private]
void ns3::FriisPropagationLossModel::SetLambda ( double  lambda  ) 
Parameters:
lambda (m) the wavelength

Set the main wavelength used in the Friis model calculation.

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

References m_lambda.

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

Set the main wavelength used in the Friis model calculation.

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

References m_lambda.

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

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

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

References m_minDistance.

Referenced by GetTypeId().

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

Set the system loss used by the Friis propagation model.

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

References m_systemLoss.


Member Data Documentation

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

Referenced by DoCalcRxPower(), GetLambda(), GetTypeId(), and SetLambda().

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

Referenced by DoCalcRxPower(), GetMinDistance(), and SetMinDistance().

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

Referenced by DoCalcRxPower(), GetSystemLoss(), GetTypeId(), and SetSystemLoss().

const double ns3::FriisPropagationLossModel::PI = 3.1415 [static, private]

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

Referenced by DoCalcRxPower().


The documentation for this class was generated from the following files:
Generated on Thu Dec 3 14:11:20 2009 for NS-3 by  doxygen 1.6.3