A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::UanPdp Class Reference

#include <uan-prop-model.h>

+ Collaboration diagram for ns3::UanPdp:

Public Types

typedef std::vector< Tap >
::const_iterator 
Iterator
 Iterator is a standard template library constant interator.

Public Member Functions

 UanPdp ()
 Create empty PDP object.
 UanPdp (std::vector< Tap > taps, Time resolution)
 Create PDP object from a vector of Tap objects.
 UanPdp (std::vector< std::complex< double > > arrivals, Time resolution)
 Create PDP object from vector of arrival amplitudes.
 UanPdp (std::vector< double > arrivals, Time resolution)
 Create PDP object from real valued arrival amplitudes.
 ~UanPdp ()
Iterator GetBegin (void) const
Iterator GetEnd (void) const
uint32_t GetNTaps (void) const
Time GetResolution (void) const
const TapGetTap (uint32_t i) const
void SetNTaps (uint32_t nTaps)
void SetResolution (Time resolution)
void SetTap (std::complex< double > arrival, uint32_t index)
std::complex< double > SumTapsC (Time begin, Time end) const
std::complex< double > SumTapsFromMaxC (Time delay, Time duration) const
double SumTapsFromMaxNc (Time delay, Time duration) const
double SumTapsNc (Time begin, Time end) const

Static Public Member Functions

static UanPdp CreateImpulsePdp (void)

Private Attributes

Time m_resolution
std::vector< Tapm_taps

Friends

std::ostream & operator<< (std::ostream &os, UanPdp &pdp)
 Writes PDP to stream as list of arrivals.
std::istream & operator>> (std::istream &is, UanPdp &pdp)

Detailed Description

Container class to describe power delay profile returned from UAN propagation models using tapped delay line model. This should model a channel impulse response as a set of equally spaced signal arrivals.

Generally, the profile should be normalized, such that the sum of all taps should equal 1. The received signal power on any interval (t1, t2) can then be found from summing the taps on the interval and multiplying by the total received power at the receiver.

Definition at line 83 of file uan-prop-model.h.

Member Typedef Documentation

typedef std::vector<Tap>::const_iterator ns3::UanPdp::Iterator

Iterator is a standard template library constant interator.

Definition at line 89 of file uan-prop-model.h.

Constructor & Destructor Documentation

ns3::UanPdp::UanPdp ( )

Create empty PDP object.

Definition at line 108 of file uan-prop-model.cc.

ns3::UanPdp::UanPdp ( std::vector< Tap taps,
Time  resolution 
)

Create PDP object from a vector of Tap objects.

Parameters
tapsTaps to include in this PDP
resolutionResolution of PDP object

Definition at line 113 of file uan-prop-model.cc.

ns3::UanPdp::UanPdp ( std::vector< std::complex< double > >  arrivals,
Time  resolution 
)

Create PDP object from vector of arrival amplitudes.

Parameters
arrivalsVector of complex amplitude arrivals
resolutionTime duration between arrivals in vector

Definition at line 119 of file uan-prop-model.cc.

References m_resolution, m_taps, and ns3::Seconds().

+ Here is the call graph for this function:

ns3::UanPdp::UanPdp ( std::vector< double >  arrivals,
Time  resolution 
)

Create PDP object from real valued arrival amplitudes.

Parameters
arrivalsvector of real valued arrivals
resolutionTime duration between arrivals in vector

Definition at line 131 of file uan-prop-model.cc.

References m_resolution, m_taps, and ns3::Seconds().

+ Here is the call graph for this function:

ns3::UanPdp::~UanPdp ( )

Definition at line 143 of file uan-prop-model.cc.

References m_taps.

Member Function Documentation

UanPdp ns3::UanPdp::CreateImpulsePdp ( void  )
static
Returns
A PDP with a singlue unit impulse arrival at time 0

Definition at line 331 of file uan-prop-model.cc.

References ns3::Seconds(), SetResolution(), and SetTap().

Referenced by ns3::UanPropModelThorp::GetPdp(), and ns3::UanPropModelIdeal::GetPdp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UanPdp::Iterator ns3::UanPdp::GetBegin ( void  ) const
Returns
Iterator positioned at first arrival

Definition at line 176 of file uan-prop-model.cc.

References m_taps.

Referenced by ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().

+ Here is the caller graph for this function:

UanPdp::Iterator ns3::UanPdp::GetEnd ( void  ) const
Returns
Iterator positioned after last arrival

Definition at line 182 of file uan-prop-model.cc.

References m_taps.

Referenced by ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().

+ Here is the caller graph for this function:

uint32_t ns3::UanPdp::GetNTaps ( void  ) const
Returns
Number of taps in PDP

Definition at line 188 of file uan-prop-model.cc.

References m_taps.

Referenced by GetTap(), ns3::operator<<(), SumTapsC(), SumTapsFromMaxC(), SumTapsFromMaxNc(), and SumTapsNc().

+ Here is the caller graph for this function:

Time ns3::UanPdp::GetResolution ( void  ) const
Returns
Resolution of PDP (time duration between arrivals)

Definition at line 194 of file uan-prop-model.cc.

References m_resolution.

Referenced by ns3::operator<<().

+ Here is the caller graph for this function:

const Tap & ns3::UanPdp::GetTap ( uint32_t  i) const
Returns
Tap object at index i
Parameters
iIndex number of tap to return (0 based)

Definition at line 160 of file uan-prop-model.cc.

References GetNTaps(), m_taps, and NS_ASSERT_MSG.

+ Here is the call graph for this function:

void ns3::UanPdp::SetNTaps ( uint32_t  nTaps)
Parameters
nTapsnumber of taps in this PDP

Definition at line 166 of file uan-prop-model.cc.

References m_taps.

void ns3::UanPdp::SetResolution ( Time  resolution)
Parameters
resolutionResolution of PDP (time between arrivals)

Definition at line 171 of file uan-prop-model.cc.

References m_resolution.

Referenced by CreateImpulsePdp().

+ Here is the caller graph for this function:

void ns3::UanPdp::SetTap ( std::complex< double >  arrival,
uint32_t  index 
)
Parameters
arrivalcomplex arrival value
indexindex of arrival

Definition at line 149 of file uan-prop-model.cc.

References ns3::Time::GetSeconds(), m_resolution, m_taps, and ns3::Seconds().

Referenced by CreateImpulsePdp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::complex< double > ns3::UanPdp::SumTapsC ( Time  begin,
Time  end 
) const
Parameters
beginTime value to begin summing arrivals
endTime value to end summing arrivals
Returns
Returns coherent sum of arrivals between two time values

Assuming that Tap at index 0 arrives at time 0, this function sums coherently (sums amplitude of arrivals considering phase difference) all arrivals between a start and end time.

Definition at line 300 of file uan-prop-model.cc.

References GetNTaps(), ns3::Time::GetSeconds(), m_resolution, m_taps, NS_ASSERT_MSG, and ns3::Seconds().

+ Here is the call graph for this function:

std::complex< double > ns3::UanPdp::SumTapsFromMaxC ( Time  delay,
Time  duration 
) const
Parameters
delayTime duratation after max to begin summing arrivals
durationTime duration to sum arrivals for
Returns
coherent sum of arrivals after max in given window

this function sums coherently (sums amplitude of arrivals considering phase difference) all arrivals in a given duration starting the given time after the maximum amplitude arrival received

Definition at line 200 of file uan-prop-model.cc.

References GetNTaps(), ns3::Time::GetSeconds(), m_resolution, m_taps, NS_ASSERT_MSG, ns3::Seconds(), and visualizer.core::start().

+ Here is the call graph for this function:

double ns3::UanPdp::SumTapsFromMaxNc ( Time  delay,
Time  duration 
) const
Parameters
delayTime duratation after max to begin summing arrivals
durationTime duration to sum arrivals for
Returns
non-coherent sum of arrivals after max in given window

this function sums non-coherently (sums amplitude of arrivals ignoring phase difference) all arrivals in a given duration starting the given time after the maximum amplitude arrival received

Definition at line 232 of file uan-prop-model.cc.

References GetNTaps(), ns3::Time::GetSeconds(), m_resolution, m_taps, NS_ASSERT_MSG, ns3::Seconds(), and visualizer.core::start().

Referenced by ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::UanPdp::SumTapsNc ( Time  begin,
Time  end 
) const
Parameters
beginTime value to begin summing arrivals
endTime value to end summing arrivals
Returns
Returns Non-coherent sum of arrivals between two time values

Assuming that Tap at index 0 arrives at time 0, this function sums non-coherently (sums amplitude of arrivals ignoring phase difference) all arrivals between a start and end time.

Definition at line 267 of file uan-prop-model.cc.

References GetNTaps(), ns3::Time::GetSeconds(), m_resolution, m_taps, NS_ASSERT_MSG, and ns3::Seconds().

Referenced by ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
UanPdp pdp 
)
friend

Writes PDP to stream as list of arrivals.

Definition at line 30 of file uan-prop-model.cc.

std::istream& operator>> ( std::istream &  is,
UanPdp pdp 
)
friend

Definition at line 44 of file uan-prop-model.cc.

Member Data Documentation

Time ns3::UanPdp::m_resolution
private

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