a Jakes propagation loss model More...
#include <jakes-propagation-loss-model.h>
Classes | |
struct | ComplexNumber |
class | PathCoefficients |
struct | PathsSet |
Public Member Functions | |
JakesPropagationLossModel () | |
virtual | ~JakesPropagationLossModel () |
void | SetNRays (uint8_t nRays) |
void | SetNOscillators (uint8_t nOscillators) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::JakesPropagationLossModel. | |
Private Types | |
typedef std::vector < PathCoefficients * > | DestinationList |
typedef std::vector< PathsSet * > | PathsList |
Private Member Functions | |
JakesPropagationLossModel (const JakesPropagationLossModel &o) | |
JakesPropagationLossModel & | operator= (const JakesPropagationLossModel &o) |
void | DoConstruct (void) |
virtual double | DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Private Attributes | |
ComplexNumber * | m_amp |
RandomVariable | m_variable |
double | m_fd |
PathsList | m_paths |
uint8_t | m_nRays |
uint8_t | m_nOscillators |
Static Private Attributes | |
static const double | PI = 3.1415 |
Friends | |
class | PathCoefficents |
a Jakes propagation loss model
The Jakes propagation loss model implemented here is described in [1].
We call path the set of rays that depart from a given transmitter and arrive to a given receiver. For each ray The complex coefficient is compute as follow:
where
The parameter is the doppler frequency and
where
is the number of oscillators per ray.
The attenuation coefficent of the path is the magnitude of the sum of all the ray coefficients. This attenuation coefficient could be greater than , hence it is divide by
where
is the number of rays.
The initail phases are random and they are choosen according to a given distribution.
[1] Y. R. Zheng and C. Xiao, "Simulation Models With Correct Statistical Properties for Rayleigh Fading Channel", IEEE Trans. on Communications, Vol. 51, pp 920-928, June 2003
Definition at line 79 of file jakes-propagation-loss-model.h.
typedef std::vector<PathCoefficients *> ns3::JakesPropagationLossModel::DestinationList [private] |
Definition at line 113 of file jakes-propagation-loss-model.h.
typedef std::vector<PathsSet *> ns3::JakesPropagationLossModel::PathsList [private] |
Definition at line 118 of file jakes-propagation-loss-model.h.
ns3::JakesPropagationLossModel::JakesPropagationLossModel | ( | ) |
Definition at line 163 of file jakes-propagation-loss-model.cc.
References DoConstruct().
ns3::JakesPropagationLossModel::~JakesPropagationLossModel | ( | ) | [virtual] |
Definition at line 168 of file jakes-propagation-loss-model.cc.
References m_amp, m_paths, and ns3::JakesPropagationLossModel::PathsSet::receivers.
ns3::JakesPropagationLossModel::JakesPropagationLossModel | ( | const JakesPropagationLossModel & | o | ) | [private] |
double ns3::JakesPropagationLossModel::DoCalcRxPower | ( | double | txPowerDbm, | |
Ptr< MobilityModel > | a, | |||
Ptr< MobilityModel > | b | |||
) | const [private, virtual] |
Implements ns3::PropagationLossModel.
Definition at line 211 of file jakes-propagation-loss-model.cc.
References ns3::JakesPropagationLossModel::PathCoefficients::GetLoss(), ns3::JakesPropagationLossModel::PathCoefficients::GetReceiver(), m_nOscillators, m_nRays, m_paths, ns3::JakesPropagationLossModel::PathsSet::receivers, and ns3::JakesPropagationLossModel::PathsSet::sender.
void ns3::JakesPropagationLossModel::DoConstruct | ( | void | ) | [private] |
Definition at line 184 of file jakes-propagation-loss-model.cc.
References ns3::JakesPropagationLossModel::ComplexNumber::imag, m_amp, m_nOscillators, PI, and ns3::JakesPropagationLossModel::ComplexNumber::real.
Referenced by JakesPropagationLossModel().
TypeId ns3::JakesPropagationLossModel::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::JakesPropagationLossModel.
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::PropagationLossModel.
Definition at line 133 of file jakes-propagation-loss-model.cc.
References ns3::TypeId::AddAttribute(), m_fd, m_nOscillators, m_nRays, m_variable, and ns3::TypeId::SetParent().
JakesPropagationLossModel& ns3::JakesPropagationLossModel::operator= | ( | const JakesPropagationLossModel & | o | ) | [private] |
void ns3::JakesPropagationLossModel::SetNOscillators | ( | uint8_t | nOscillators | ) |
nOscillators | Number of oscillators |
Set the number of oscillators to use to compute the ray coefficient
Definition at line 205 of file jakes-propagation-loss-model.cc.
References m_nOscillators.
void ns3::JakesPropagationLossModel::SetNRays | ( | uint8_t | nRays | ) |
nRays | Number of rays per path |
Set the number of rays for each path
Definition at line 199 of file jakes-propagation-loss-model.cc.
References m_nRays.
friend class PathCoefficents [friend] |
Definition at line 112 of file jakes-propagation-loss-model.h.
Definition at line 122 of file jakes-propagation-loss-model.h.
Referenced by DoConstruct(), and ~JakesPropagationLossModel().
double ns3::JakesPropagationLossModel::m_fd [private] |
Definition at line 124 of file jakes-propagation-loss-model.h.
Referenced by GetTypeId().
uint8_t ns3::JakesPropagationLossModel::m_nOscillators [private] |
Definition at line 127 of file jakes-propagation-loss-model.h.
Referenced by DoCalcRxPower(), DoConstruct(), GetTypeId(), and SetNOscillators().
uint8_t ns3::JakesPropagationLossModel::m_nRays [private] |
Definition at line 126 of file jakes-propagation-loss-model.h.
Referenced by DoCalcRxPower(), GetTypeId(), and SetNRays().
PathsList ns3::JakesPropagationLossModel::m_paths [mutable, private] |
Definition at line 125 of file jakes-propagation-loss-model.h.
Referenced by DoCalcRxPower(), and ~JakesPropagationLossModel().
Definition at line 123 of file jakes-propagation-loss-model.h.
Referenced by GetTypeId().
const double ns3::JakesPropagationLossModel::PI = 3.1415 [static, private] |
Definition at line 121 of file jakes-propagation-loss-model.h.
Referenced by DoConstruct(), ns3::JakesPropagationLossModel::PathCoefficients::DoConstruct(), and ns3::JakesPropagationLossModel::PathCoefficients::GetLoss().