a Friis propagation loss model More...
#include <propagation-loss-model.h>
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) | |
FriisPropagationLossModel & | operator= (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 |
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: with the following equation for the case of an isotropic antenna with no heat loss:
The final equation becomes:
Modern extensions to this original equation are:
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.
ns3::FriisPropagationLossModel::FriisPropagationLossModel | ( | ) |
Definition at line 138 of file propagation-loss-model.cc.
ns3::FriisPropagationLossModel::FriisPropagationLossModel | ( | const FriisPropagationLossModel & | o | ) | [private] |
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 |
Definition at line 171 of file propagation-loss-model.cc.
References m_lambda.
double ns3::FriisPropagationLossModel::GetMinDistance | ( | void | ) | const |
Definition at line 156 of file propagation-loss-model.cc.
References m_minDistance.
Referenced by GetTypeId().
double ns3::FriisPropagationLossModel::GetSystemLoss | ( | void | ) | const |
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:
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 | ) |
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 | |||
) |
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 | ) |
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 | ) |
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.
double ns3::FriisPropagationLossModel::m_lambda [private] |
Definition at line 179 of file propagation-loss-model.h.
Referenced by DoCalcRxPower(), GetLambda(), GetTypeId(), and SetLambda().
double ns3::FriisPropagationLossModel::m_minDistance [private] |
Definition at line 181 of file propagation-loss-model.h.
Referenced by DoCalcRxPower(), GetMinDistance(), and SetMinDistance().
double ns3::FriisPropagationLossModel::m_systemLoss [private] |
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().