ns3::SatRayleighModel Class Reference

Class for Rayleigh model fader. More...

#include "satellite-rayleigh-model.h"

+ Inheritance diagram for ns3::SatRayleighModel:
+ Collaboration diagram for ns3::SatRayleighModel:

Public Member Functions

 SatRayleighModel ()
 Constructor. More...
 
 SatRayleighModel (Ptr< SatRayleighConf > rayleighConf, uint32_t initialSet, uint32_t initialState)
 Constructor. More...
 
 ~SatRayleighModel ()
 Destructor. More...
 
void DoDispose ()
 Do needed dispose actions. More...
 
double GetChannelGain ()
 Function for returning the channel gain. More...
 
double GetChannelGainDb ()
 Function for returning the channel gain in dB. More...
 
std::complex< double > GetComplexGain ()
 Function for calculating the oscillator complex gain. More...
 
void UpdateParameters (uint32_t set, uint32_t state)
 Function for updating the parameter set and state. More...
 
- Public Member Functions inherited from ns3::SatBaseFader
 SatBaseFader ()
 Constructor. More...
 
virtual ~SatBaseFader ()
 Destructor. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 NS-3 function for type id. More...
 
- Static Public Member Functions inherited from ns3::SatBaseFader
static TypeId GetTypeId (void)
 NS-3 type id function. More...
 

Private Member Functions

void ConstructOscillators ()
 Function for constructing the oscillators. More...
 
void Reset ()
 Clear used variables. More...
 

Private Attributes

uint32_t m_currentSet
 Current parameter set. More...
 
uint32_t m_currentState
 Current state. More...
 
std::vector< Ptr< SatFadingOscillator > > m_oscillators
 Vector of oscillators. More...
 
Ptr< SatRayleighConfm_rayleighConf
 Rayleigh configuration object. More...
 
std::vector< std::vector< double > > m_rayleighParameters
 Rayleigh model parameters. More...
 
Ptr< UniformRandomVariable > m_uniformVariable
 Uniform distribution random variable. More...
 

Detailed Description

Class for Rayleigh model fader.

The class implements Rayleigh model fader for the Markov -based fading model. The model uses multiple oscillators to form the fading (inspired by Jakes model).

Definition at line 40 of file satellite-rayleigh-model.h.

Constructor & Destructor Documentation

◆ SatRayleighModel() [1/2]

ns3::SatRayleighModel::SatRayleighModel ( )

Constructor.

Definition at line 40 of file satellite-rayleigh-model.cc.

◆ SatRayleighModel() [2/2]

ns3::SatRayleighModel::SatRayleighModel ( Ptr< SatRayleighConf rayleighConf,
uint32_t  initialSet,
uint32_t  initialState 
)

Constructor.

Parameters
rayleighConfRayleigh configuration.
initialSetInitial set of parameters for which Rayleigh parameters are requested.
initialStateInitial state of the model.

Definition at line 50 of file satellite-rayleigh-model.cc.

References ConstructOscillators(), m_currentSet, m_rayleighConf, m_rayleighParameters, and m_uniformVariable.

+ Here is the call graph for this function:

◆ ~SatRayleighModel()

ns3::SatRayleighModel::~SatRayleighModel ( )

Destructor.

Definition at line 68 of file satellite-rayleigh-model.cc.

References Reset().

+ Here is the call graph for this function:

Member Function Documentation

◆ ConstructOscillators()

void ns3::SatRayleighModel::ConstructOscillators ( )
private

Function for constructing the oscillators.

Initial phase is common for all oscillators:

Theta is common for all oscillators:

  1. Rotation speed 1a. Initiate

    \[ \alpha_n = \frac{2\pi n - \pi + \theta}{4M}, n=1, 2, \ldots, M\]

    , n is oscillatorNumber, M is m_nOscillators

1b. Initiate rotation speed:

  1. Initiate complex amplitude:
  2. Construct oscillator:

Definition at line 95 of file satellite-rayleigh-model.cc.

References m_oscillators, m_rayleighParameters, and m_uniformVariable.

Referenced by SatRayleighModel().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatRayleighModel::DoDispose ( void  )

Do needed dispose actions.

Definition at line 76 of file satellite-rayleigh-model.cc.

References Reset().

+ Here is the call graph for this function:

◆ GetChannelGain()

double ns3::SatRayleighModel::GetChannelGain ( void  )
virtual

Function for returning the channel gain.

Returns
channel gain

Implements ns3::SatBaseFader.

Definition at line 149 of file satellite-rayleigh-model.cc.

References GetComplexGain().

+ Here is the call graph for this function:

◆ GetChannelGainDb()

double ns3::SatRayleighModel::GetChannelGainDb ( void  )
virtual

Function for returning the channel gain in dB.

Returns
channel gain in dB

Implements ns3::SatBaseFader.

Definition at line 137 of file satellite-rayleigh-model.cc.

References GetComplexGain().

+ Here is the call graph for this function:

◆ GetComplexGain()

std::complex< double > ns3::SatRayleighModel::GetComplexGain ( )

Function for calculating the oscillator complex gain.

Returns
complex gain

Definition at line 122 of file satellite-rayleigh-model.cc.

References m_oscillators.

Referenced by GetChannelGain(), and GetChannelGainDb().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::SatRayleighModel::GetTypeId ( void  )
static

NS-3 function for type id.

Returns
type id

Definition at line 32 of file satellite-rayleigh-model.cc.

◆ Reset()

void ns3::SatRayleighModel::Reset ( void  )
private

Clear used variables.

Definition at line 85 of file satellite-rayleigh-model.cc.

References m_oscillators, m_rayleighConf, and m_uniformVariable.

Referenced by ~SatRayleighModel(), and DoDispose().

+ Here is the caller graph for this function:

◆ UpdateParameters()

void ns3::SatRayleighModel::UpdateParameters ( uint32_t  set,
uint32_t  state 
)
virtual

Function for updating the parameter set and state.

Parameters
setparameter set
statestate

Implements ns3::SatBaseFader.

Definition at line 162 of file satellite-rayleigh-model.cc.

References m_currentSet, and m_currentState.

Member Data Documentation

◆ m_currentSet

uint32_t ns3::SatRayleighModel::m_currentSet
private

Current parameter set.

Definition at line 116 of file satellite-rayleigh-model.h.

Referenced by SatRayleighModel(), and UpdateParameters().

◆ m_currentState

uint32_t ns3::SatRayleighModel::m_currentState
private

Current state.

Definition at line 121 of file satellite-rayleigh-model.h.

Referenced by UpdateParameters().

◆ m_oscillators

std::vector<Ptr<SatFadingOscillator> > ns3::SatRayleighModel::m_oscillators
private

Vector of oscillators.

Definition at line 111 of file satellite-rayleigh-model.h.

Referenced by ConstructOscillators(), GetComplexGain(), and Reset().

◆ m_rayleighConf

Ptr<SatRayleighConf> ns3::SatRayleighModel::m_rayleighConf
private

Rayleigh configuration object.

Definition at line 131 of file satellite-rayleigh-model.h.

Referenced by SatRayleighModel(), and Reset().

◆ m_rayleighParameters

std::vector<std::vector<double> > ns3::SatRayleighModel::m_rayleighParameters
private

Rayleigh model parameters.

Definition at line 136 of file satellite-rayleigh-model.h.

Referenced by SatRayleighModel(), and ConstructOscillators().

◆ m_uniformVariable

Ptr<UniformRandomVariable> ns3::SatRayleighModel::m_uniformVariable
private

Uniform distribution random variable.

Definition at line 126 of file satellite-rayleigh-model.h.

Referenced by SatRayleighModel(), ConstructOscillators(), and Reset().


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