The HybridBuildingsPropagationModel is a compound of different models able to evaluate the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and outdoor communications). More...
#include "hybrid-buildings-propagation-loss-model.h"
Public Member Functions | |
HybridBuildingsPropagationLossModel () | |
~HybridBuildingsPropagationLossModel () override | |
double | GetLoss (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override |
Compute the path loss according to the nodes position using the appropriate model. | |
void | SetCitySize (CitySize size) |
set the size of the city | |
void | SetEnvironment (EnvironmentType env) |
set the environment type | |
void | SetFrequency (double freq) |
set the propagation frequency | |
void | SetRooftopHeight (double rooftopHeight) |
set the rooftop height | |
Public Member Functions inherited from ns3::BuildingsPropagationLossModel | |
BuildingsPropagationLossModel () | |
double | DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override |
PropagationLossModel. | |
Public Member Functions inherited from ns3::PropagationLossModel | |
PropagationLossModel () | |
PropagationLossModel (const PropagationLossModel &)=delete | |
~PropagationLossModel () override | |
int64_t | AssignStreams (int64_t stream) |
If this loss model uses objects of type RandomVariableStream, set the stream numbers to the integers starting with the offset 'stream'. | |
double | CalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Returns the Rx Power taking into account all the PropagationLossModel(s) chained to the current one. | |
Ptr< PropagationLossModel > | GetNext () |
Gets the next PropagationLossModel in the chain of loss models that act on the signal. | |
PropagationLossModel & | operator= (const PropagationLossModel &)=delete |
void | SetNext (Ptr< PropagationLossModel > next) |
Enables a chain of loss models to act on the signal. | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::BuildingsPropagationLossModel | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::PropagationLossModel | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Private Member Functions | |
double | ItuR1238 (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Compute the path loss using ItuR1238PropagationLossModel. | |
double | ItuR1411 (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Compute the path loss using either ItuR1411LosPropagationLossModel or ItuR1411NlosOverRooftopPropagationLossModel. | |
double | OkumuraHata (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Compute the path loss using either OkumuraHataPropagationLossModel or Kun2600MhzPropagationLossModel. | |
Private Attributes | |
double | m_frequency |
Operation frequency. | |
double | m_itu1411NlosThreshold |
in meters (switch Los -> NLoS) | |
Ptr< ItuR1238PropagationLossModel > | m_ituR1238 |
ItuR1238PropagationLossModel. | |
Ptr< ItuR1411LosPropagationLossModel > | m_ituR1411Los |
ItuR1411LosPropagationLossModel. | |
Ptr< ItuR1411NlosOverRooftopPropagationLossModel > | m_ituR1411NlosOverRooftop |
ItuR1411NlosOverRooftopPropagationLossModel. | |
Ptr< Kun2600MhzPropagationLossModel > | m_kun2600Mhz |
Kun2600MhzPropagationLossModel. | |
Ptr< OkumuraHataPropagationLossModel > | m_okumuraHata |
OkumuraHataPropagationLossModel. | |
double | m_rooftopHeight |
Roof Height (in meters) | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::BuildingsPropagationLossModel | |
int64_t | DoAssignStreams (int64_t stream) override |
Assign a fixed random variable stream number to the random variables used by this model. | |
double | EvaluateSigma (Ptr< MobilityBuildingInfo > a, Ptr< MobilityBuildingInfo > b) const |
Calculate the Standard deviation of the normal distribution used to calculate the shadowing. | |
double | ExternalWallLoss (Ptr< MobilityBuildingInfo > a) const |
Calculate the external wall loss. | |
double | GetShadowing (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const |
Calculate the shadowing loss. | |
double | HeightLoss (Ptr< MobilityBuildingInfo > n) const |
Calculate the height loss. | |
double | InternalWallsLoss (Ptr< MobilityBuildingInfo > a, Ptr< MobilityBuildingInfo > b) const |
Calculate the internal wall loss. | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoDispose () |
Destructor implementation. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Protected Attributes inherited from ns3::BuildingsPropagationLossModel | |
double | m_lossInternalWall |
loss from internal walls (in dBm) | |
Ptr< NormalRandomVariable > | m_randVariable |
Random variable. | |
std::map< Ptr< MobilityModel >, std::map< Ptr< MobilityModel >, ShadowingLoss > > | m_shadowingLossMap |
Map of the shadowng loss. | |
double | m_shadowingSigmaExtWalls |
Standard deviation of the normal distribution used to calculate the shadowing due to ext walls. | |
double | m_shadowingSigmaIndoor |
Standard deviation of the normal distribution used to calculate the shadowing for indoor nodes. | |
double | m_shadowingSigmaOutdoor |
Standard deviation of the normal distribution used to calculate the shadowing for outdoor nodes. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
The HybridBuildingsPropagationModel is a compound of different models able to evaluate the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and outdoor communications).
This model includes Hata model, COST231, ITU-R P.1411 (short range communications), ITU-R P.1238 (indoor communications), which are combined in order to be able to evaluate the pathloss under different scenarios, in detail:
Definition at line 49 of file hybrid-buildings-propagation-loss-model.h.
ns3::HybridBuildingsPropagationLossModel::HybridBuildingsPropagationLossModel | ( | ) |
Definition at line 35 of file hybrid-buildings-propagation-loss-model.cc.
References ns3::CreateObject(), m_ituR1238, m_ituR1411Los, m_ituR1411NlosOverRooftop, m_kun2600Mhz, and m_okumuraHata.
|
override |
Definition at line 44 of file hybrid-buildings-propagation-loss-model.cc.
|
overridevirtual |
Compute the path loss according to the nodes position using the appropriate model.
a | the mobility model of the source |
b | the mobility model of the destination |
Implements ns3::BuildingsPropagationLossModel.
Definition at line 135 of file hybrid-buildings-propagation-loss-model.cc.
References ns3::BuildingsPropagationLossModel::ExternalWallLoss(), ns3::BuildingsPropagationLossModel::HeightLoss(), ns3::BuildingsPropagationLossModel::InternalWallsLoss(), ItuR1238(), ItuR1411(), m_rooftopHeight, NS_ASSERT_MSG, NS_LOG_INFO, and OkumuraHata().
|
static |
Get the type ID.
Definition at line 49 of file hybrid-buildings-propagation-loss-model.cc.
References ns3::LargeCity, m_itu1411NlosThreshold, ns3::MakeDoubleAccessor(), ns3::MakeDoubleChecker(), ns3::MakeEnumAccessor(), ns3::MakeEnumChecker(), ns3::MediumCity, ns3::OpenAreasEnvironment, SetCitySize(), SetEnvironment(), SetFrequency(), ns3::TypeId::SetParent(), SetRooftopHeight(), ns3::SmallCity, ns3::SubUrbanEnvironment, and ns3::UrbanEnvironment.
|
private |
Compute the path loss using ItuR1238PropagationLossModel.
a | The mobility model of the source. |
b | The mobility model of the destination. |
Definition at line 280 of file hybrid-buildings-propagation-loss-model.cc.
References m_ituR1238.
Referenced by GetLoss().
|
private |
Compute the path loss using either ItuR1411LosPropagationLossModel or ItuR1411NlosOverRooftopPropagationLossModel.
a | The mobility model of the source. |
b | The mobility model of the destination. |
Definition at line 267 of file hybrid-buildings-propagation-loss-model.cc.
References m_itu1411NlosThreshold, m_ituR1411Los, and m_ituR1411NlosOverRooftop.
Referenced by GetLoss().
|
private |
Compute the path loss using either OkumuraHataPropagationLossModel or Kun2600MhzPropagationLossModel.
a | The mobility model of the source. |
b | The mobility model of the destination. |
Definition at line 254 of file hybrid-buildings-propagation-loss-model.cc.
References m_frequency, m_kun2600Mhz, and m_okumuraHata.
Referenced by GetLoss().
void ns3::HybridBuildingsPropagationLossModel::SetCitySize | ( | CitySize | size | ) |
set the size of the city
size |
Definition at line 111 of file hybrid-buildings-propagation-loss-model.cc.
References m_ituR1411NlosOverRooftop, and m_okumuraHata.
Referenced by GetTypeId().
void ns3::HybridBuildingsPropagationLossModel::SetEnvironment | ( | EnvironmentType | env | ) |
set the environment type
env |
Definition at line 104 of file hybrid-buildings-propagation-loss-model.cc.
References m_ituR1411NlosOverRooftop, and m_okumuraHata.
Referenced by GetTypeId().
void ns3::HybridBuildingsPropagationLossModel::SetFrequency | ( | double | freq | ) |
set the propagation frequency
freq |
Definition at line 118 of file hybrid-buildings-propagation-loss-model.cc.
References m_frequency, m_ituR1238, m_ituR1411Los, m_ituR1411NlosOverRooftop, and m_okumuraHata.
Referenced by GetTypeId().
void ns3::HybridBuildingsPropagationLossModel::SetRooftopHeight | ( | double | rooftopHeight | ) |
set the rooftop height
rooftopHeight |
Definition at line 128 of file hybrid-buildings-propagation-loss-model.cc.
References m_ituR1411NlosOverRooftop, and m_rooftopHeight.
Referenced by GetTypeId().
|
private |
Operation frequency.
Definition at line 139 of file hybrid-buildings-propagation-loss-model.h.
Referenced by OkumuraHata(), and SetFrequency().
|
private |
in meters (switch Los -> NLoS)
Definition at line 137 of file hybrid-buildings-propagation-loss-model.h.
Referenced by GetTypeId(), and ItuR1411().
|
private |
Definition at line 133 of file hybrid-buildings-propagation-loss-model.h.
Referenced by HybridBuildingsPropagationLossModel(), ItuR1238(), and SetFrequency().
|
private |
ItuR1411LosPropagationLossModel.
Definition at line 129 of file hybrid-buildings-propagation-loss-model.h.
Referenced by HybridBuildingsPropagationLossModel(), ItuR1411(), and SetFrequency().
|
private |
ItuR1411NlosOverRooftopPropagationLossModel.
Definition at line 131 of file hybrid-buildings-propagation-loss-model.h.
Referenced by HybridBuildingsPropagationLossModel(), ItuR1411(), SetCitySize(), SetEnvironment(), SetFrequency(), and SetRooftopHeight().
|
private |
Kun2600MhzPropagationLossModel.
Definition at line 135 of file hybrid-buildings-propagation-loss-model.h.
Referenced by HybridBuildingsPropagationLossModel(), and OkumuraHata().
|
private |
OkumuraHataPropagationLossModel.
Definition at line 127 of file hybrid-buildings-propagation-loss-model.h.
Referenced by HybridBuildingsPropagationLossModel(), OkumuraHata(), SetCitySize(), SetEnvironment(), and SetFrequency().
|
private |
Roof Height (in meters)
Definition at line 138 of file hybrid-buildings-propagation-loss-model.h.
Referenced by GetLoss(), and SetRooftopHeight().