21 #ifndef UAN_PROP_MODEL_H
22 #define UAN_PROP_MODEL_H
24 #include "ns3/object.h"
25 #include "ns3/mobility-model.h"
26 #include "ns3/nstime.h"
55 Tap (
Time delay, std::complex<double> amp);
61 std::complex<double>
GetAmp (
void)
const;
97 typedef std::vector<Tap>::const_iterator
Iterator;
108 UanPdp (std::vector<Tap> taps,
Time resolution);
115 UanPdp (std::vector<std::complex<double > > arrivals,
Time resolution);
122 UanPdp (std::vector<double> arrivals,
Time resolution);
136 void SetTap (std::complex<double> arrival, uint32_t index);
325 virtual void Clear (
void);
A base class which provides memory management and object aggregation.
Holds PDP Tap information (amplitude and delay)
std::complex< double > GetAmp(void) const
Get the complex amplitude of arrival.
Time m_delay
The time delay.
Time GetDelay(void) const
Get the delay time, usually from first arrival of signal.
Tap()
Default constructor.
std::complex< double > m_amplitude
The amplitude.
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
The power delay profile returned by propagation models.
void SetResolution(Time resolution)
Set the time duration (resolution) between arrivals.
uint32_t GetNTaps(void) const
Get the number of taps.
friend std::istream & operator>>(std::istream &is, UanPdp &pdp)
Reads in list of arrivals from stream is.
void SetTap(std::complex< double > arrival, uint32_t index)
Set the arrival value for a tap.
std::vector< Tap > m_taps
The vector of Taps.
double SumTapsFromMaxNc(Time delay, Time duration) const
Compute the non-coherent sum of tap amplitudes starting after a delay from the maximum amplitude for ...
std::vector< Tap >::const_iterator Iterator
Convenience iterator typedef.
Time GetResolution(void) const
Get the delay time resolution (time duration between arrivals).
void SetNTaps(uint32_t nTaps)
Resize the tap vector.
friend std::ostream & operator<<(std::ostream &os, const UanPdp &pdp)
Writes PDP to stream as list of arrivals.
UanPdp()
Create empty PDP object.
double SumTapsNc(Time begin, Time end) const
Compute the non-coherent sum of tap amplitudes between a start and end time.
Iterator GetBegin(void) const
Get the beginning of the tap vector.
static UanPdp CreateImpulsePdp(void)
Get a unit impulse PDP at time 0.
UanPdp NormalizeToSumNc(void) const
Creates a new UanPdp normalized to its non coherent sum.
Time m_resolution
The time resolution.
Iterator GetEnd(void) const
Get the end of the tap list (one beyond the last entry).
const Tap & GetTap(uint32_t i) const
Get the Tap at the specified delay index.
std::complex< double > SumTapsC(Time begin, Time end) const
Compute the coherent sum of tap amplitudes between a start and end time.
std::complex< double > SumTapsFromMaxC(Time delay, Time duration) const
Compute the coherent sum of tap amplitudes starting after a delay from the maximum amplitude for a to...
~UanPdp()
Dummy destructor, see DoDispose.
Base class for implemented underwater propagation models.
virtual void DoDispose(void)
Destructor implementation.
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode mode)=0
Finds propagation delay between nodes a and b.
static TypeId GetTypeId(void)
Register this type.
virtual UanPdp GetPdp(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode mode)=0
Get the PDP for the path between two nodes.
virtual double GetPathLossDb(Ptr< MobilityModel > a, Ptr< MobilityModel > b, UanTxMode txMode)=0
Computes pathloss between nodes a and b.
virtual void Clear(void)
Clear all pointer references.
Abstraction of packet modulation information.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::istream & operator>>(std::istream &is, Angles &a)
std::ostream & operator<<(std::ostream &os, const Angles &a)