|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
20 #ifndef THREE_GPP_PROPAGATION_LOSS_MODEL_H
21 #define THREE_GPP_PROPAGATION_LOSS_MODEL_H
23 #include "ns3/propagation-loss-model.h"
24 #include "ns3/channel-condition-model.h"
135 virtual double GetLossLos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const = 0;
146 virtual double GetLossNlos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const = 0;
158 virtual double GetLossNlosv (
double distance2D,
double distance3D,
double hUt,
double hBs)
const;
168 virtual std::pair<double, double>
GetUtAndBsHeights (
double za,
double zb)
const;
301 virtual double GetLossLos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
312 virtual double GetLossNlos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
338 static double Pl1 (
double frequency,
double distance3D,
double h,
double w);
347 static double GetBpDistance (
double frequency,
double hA,
double hB);
414 double GetLossLos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
425 double GetLossNlos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
450 double GetBpDistance (
double hUt,
double hBs,
double distance2D)
const;
505 double GetLossLos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
516 double GetLossNlos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
541 double GetBpDistance (
double hUt,
double hBs,
double distance2D)
const;
549 std::pair<double, double>
GetUtAndBsHeights (
double za,
double zb)
const override;
602 double GetLossLos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
613 double GetLossNlos (
double distance2D,
double distance3D,
double hUt,
double hBs)
const override;
Ptr< NormalRandomVariable > m_normRandomVariable
normal random variable
a unique identifier for an interface.
static double Pl1(double frequency, double distance3D, double h, double w)
Computes the PL1 formula for the RMa scenario.
ChannelCondition::LosConditionValue m_condition
the LOS/NLOS condition
virtual double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Computes the received power by applying the pathloss model described in 3GPP TR 38....
Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the RMa scenario.
double m_shadowing
the shadowing loss in dB
ThreeGppIndoorOfficePropagationLossModel()
Constructor.
virtual ~ThreeGppIndoorOfficePropagationLossModel() override
Destructor.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ThreeGppPropagationLossModel(const ThreeGppPropagationLossModel &)=delete
Copy constructor.
double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
ThreeGppUmiStreetCanyonPropagationLossModel(const ThreeGppUmiStreetCanyonPropagationLossModel &)=delete
Copy constructor.
virtual ~ThreeGppRmaPropagationLossModel() override
Destructor.
double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed.
Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the UMi-Street Canyon scen...
Models the propagation loss through a transmission medium.
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading correlation distance.
LosConditionValue
Possible values for Line-of-Sight condition.
static TypeId GetTypeId(void)
Get the type ID.
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading standard deviation.
ThreeGppUmaPropagationLossModel & operator=(const ThreeGppUmaPropagationLossModel &)=delete
Copy constructor.
double GetShadowing(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const
Retrieves the shadowing value by looking at m_shadowingMap.
double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
ThreeGppRmaPropagationLossModel()
Constructor.
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const =0
Returns the shadow fading correlation distance.
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading correlation distance.
Smart pointer class similar to boost::intrusive_ptr.
Ptr< UniformRandomVariable > m_uniformVar
a uniform random variable used for the computation of the breakpoint distance
static TypeId GetTypeId(void)
Get the type ID.
ThreeGppUmiStreetCanyonPropagationLossModel & operator=(const ThreeGppUmiStreetCanyonPropagationLossModel &)=delete
Copy constructor.
double GetBpDistance(double hUt, double hBs, double distance2D) const
Computes the breakpoint distance.
Ptr< ChannelConditionModel > m_channelConditionModel
pointer to the channel condition model
ThreeGppUmaPropagationLossModel(const ThreeGppUmaPropagationLossModel &)=delete
Copy constructor.
Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the Indoor Office scenario...
ThreeGppRmaPropagationLossModel(const ThreeGppRmaPropagationLossModel &)=delete
Copy constructor.
static Vector GetVectorDifference(Ptr< MobilityModel > a, Ptr< MobilityModel > b)
Get the difference between the node position.
virtual double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const =0
Computes the pathloss between a and b considering that the line of sight is obstructed.
Vector m_distance
the vector AB
virtual double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
double m_w
average street width in meters
ThreeGppPropagationLossModel & operator=(const ThreeGppPropagationLossModel &)=delete
Copy constructor.
double m_frequency
operating frequency in Hz
ThreeGppIndoorOfficePropagationLossModel & operator=(const ThreeGppIndoorOfficePropagationLossModel &)=delete
Copy constructor.
std::pair< double, double > GetUtAndBsHeights(double za, double zb) const override
Determines hUT and hBS.
double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed.
void SetFrequency(double f)
Set the central frequency of the model.
virtual double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed.
Ptr< ChannelConditionModel > GetChannelConditionModel(void) const
Returns the associated channel condition model.
virtual ~ThreeGppUmaPropagationLossModel() override
Destructor.
virtual int64_t DoAssignStreams(int64_t stream) override
If this model uses objects of type RandomVariableStream, set the stream numbers to the integers start...
ThreeGppPropagationLossModel()
Constructor.
double m_h
average building height in meters
static TypeId GetTypeId(void)
Get the type ID.
virtual ~ThreeGppUmiStreetCanyonPropagationLossModel() override
Destructor.
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const =0
Returns the shadow fading standard deviation.
double GetFrequency(void) const
Return the current central frequency.
ThreeGppRmaPropagationLossModel & operator=(const ThreeGppRmaPropagationLossModel &)=delete
Copy constructor.
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading correlation distance.
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading standard deviation.
Implements the pathloss model defined in 3GPP TR 38.901, Table 7.4.1-1 for the UMa scenario.
double f(double x, void *params)
virtual int64_t DoAssignStreams(int64_t stream) override
If this model uses objects of type RandomVariableStream, set the stream numbers to the integers start...
virtual double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const =0
Computes the pathloss between a and b considering that the line of sight is not obstructed.
static TypeId GetTypeId(void)
Get the type ID.
ThreeGppUmiStreetCanyonPropagationLossModel()
Constructor.
ThreeGppUmaPropagationLossModel()
Constructor.
bool m_shadowingEnabled
enable/disable shadowing
virtual double GetLossNlosv(double distance2D, double distance3D, double hUt, double hBs) const
Computes the pathloss between a and b considering that the line of sight is obstructed by a vehicle.
static double GetBpDistance(double frequency, double hA, double hB)
Computes the breakpoint distance for the RMa scenario.
Base class for the 3GPP propagation models.
virtual std::pair< double, double > GetUtAndBsHeights(double za, double zb) const
Determines hUT and hBS.
std::unordered_map< uint32_t, ShadowingMapItem > m_shadowingMap
map to store the shadowing values
virtual void DoDispose() override
Destructor implementation.
double GetLoss(Ptr< ChannelCondition > cond, double distance2D, double distance3D, double hUt, double hBs) const
Computes the pathloss between a and b.
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading standard deviation.
virtual double GetShadowingStd(Ptr< MobilityModel > a, Ptr< MobilityModel > b, ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading standard deviation.
double GetBpDistance(double hUt, double hBs, double distance2D) const
Computes the breakpoint distance.
static TypeId GetTypeId(void)
Get the type ID.
virtual double GetShadowingCorrelationDistance(ChannelCondition::LosConditionValue cond) const override
Returns the shadow fading correlation distance.
virtual ~ThreeGppPropagationLossModel() override
Destructor.
static uint32_t GetKey(Ptr< MobilityModel > a, Ptr< MobilityModel > b)
Returns an unique key for the channel between a and b.
void SetChannelConditionModel(Ptr< ChannelConditionModel > model)
Set the channel condition model used to determine the channel state (e.g., the LOS/NLOS condition)
ThreeGppIndoorOfficePropagationLossModel(const ThreeGppIndoorOfficePropagationLossModel &)=delete
Copy constructor.
Define a struct for the m_shadowingMap entries.
static double Calculate2dDistance(Vector a, Vector b)
Computes the 2D distance between two 3D vectors.
double GetLossLos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is not obstructed.
double GetLossNlos(double distance2D, double distance3D, double hUt, double hBs) const override
Computes the pathloss between a and b considering that the line of sight is obstructed.