A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
anonymous_namespace{three-gpp-propagation-loss-model.cc} Namespace Reference

Enumerations

enum  SFCL_params {
  S_LOS_sigF , S_NLOS_sigF , S_NLOS_CL , Ka_LOS_sigF ,
  Ka_NLOS_sigF , Ka_NLOS_CL
}
 The enumerator used for code clarity when performing parameter assignment in the GetLoss Methods. More...
 

Functions

double ComputeAtmosphericAbsorptionLoss (double freq, double elevAngle)
 Computes the atmospheric absorption loss using the formula described in 3GPP TR 38.811, Sec 6.6.4.
 
double ComputeClutterLoss (double freq, const std::map< int, std::vector< float > > *sfcl, double elevAngleQuantized)
 Computes the clutter loss using the formula described in 3GPP TR 38.811, Sec 6.6.6.1-4 and 6.6.6.2, respectively.
 
double ComputeIonosphericPlusTroposphericScintillationLoss (double freq, double elevAngleQuantized)
 Computes the ionospheric plus tropospheric scintillation loss using the formulas described in 3GPP TR 38.811, Sec 6.6.6.1-4 and 6.6.6.2, respectively.
 
double ComputeNtnPathloss (double freq, double dist3d)
 Computes the free-space path loss using the formula described in 3GPP TR 38.811, Table 6.6.2.
 
std::tuple< double, double, double, doubleGetBsUtDistancesAndHeights (ns3::Ptr< const ns3::MobilityModel > a, ns3::Ptr< const ns3::MobilityModel > b)
 Get the base station and user terminal relative distances and heights.
 
std::tuple< double, doubleGetBsUtHeightsUmiStreetCanyon (double heightA, double heightB)
 Get the base station and user terminal heights for the UmiStreetCanyon scenario.
 

Variables

const double atmosphericAbsorption [101]
 Array containing the attenuation given by atmospheric absorption.
 
constexpr double M_C = 3.0e8
 propagation velocity in free space
 
const std::map< int, std::vector< float > > SFCL_DenseUrban
 The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Dense Urban scenario.
 
const std::map< int, std::vector< float > > SFCL_SuburbanRural
 The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Suburban and Rural scenarios.
 
const std::map< int, std::vector< float > > SFCL_Urban
 The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Urban scenario.
 
const std::map< int, float > troposphericScintillationLoss
 Map containing the Tropospheric attenuation in dB with 99% probability at 20 GHz in Toulouse used for tropospheric scintillation losses.
 

Enumeration Type Documentation

◆ SFCL_params

enum anonymous_namespace{three-gpp-propagation-loss-model.cc}::SFCL_params

The enumerator used for code clarity when performing parameter assignment in the GetLoss Methods.

Enumerator
S_LOS_sigF 
S_NLOS_sigF 
S_NLOS_CL 
Ka_LOS_sigF 
Ka_NLOS_sigF 
Ka_NLOS_CL 

Definition at line 39 of file three-gpp-propagation-loss-model.cc.

Function Documentation

◆ ComputeAtmosphericAbsorptionLoss()

double anonymous_namespace{three-gpp-propagation-loss-model.cc}::ComputeAtmosphericAbsorptionLoss ( double  freq,
double  elevAngle 
)

Computes the atmospheric absorption loss using the formula described in 3GPP TR 38.811, Sec 6.6.4.

Parameters
freqthe operating frequency
elevAnglethe elevation angle between the communicating nodes
Returns
the atmospheric absorption loss for NTN scenarios

Definition at line 197 of file three-gpp-propagation-loss-model.cc.

References atmosphericAbsorption.

◆ ComputeClutterLoss()

double anonymous_namespace{three-gpp-propagation-loss-model.cc}::ComputeClutterLoss ( double  freq,
const std::map< int, std::vector< float > > *  sfcl,
double  elevAngleQuantized 
)

Computes the clutter loss using the formula described in 3GPP TR 38.811, Sec 6.6.6.1-4 and 6.6.6.2, respectively.

Parameters
freqthe operating frequency
elevAngleQuantizedthe quantized elevation angle between the communicating nodes
sfclthe nested map containing the Shadow Fading and Clutter Loss values for the NTN Suburban and Rural scenario
Returns
the clutter loss for NTN scenarios

Definition at line 247 of file three-gpp-propagation-loss-model.cc.

References Ka_NLOS_CL, and S_NLOS_CL.

◆ ComputeIonosphericPlusTroposphericScintillationLoss()

double anonymous_namespace{three-gpp-propagation-loss-model.cc}::ComputeIonosphericPlusTroposphericScintillationLoss ( double  freq,
double  elevAngleQuantized 
)

Computes the ionospheric plus tropospheric scintillation loss using the formulas described in 3GPP TR 38.811, Sec 6.6.6.1-4 and 6.6.6.2, respectively.

Parameters
freqthe operating frequency
elevAngleQuantizedthe quantized elevation angle between the communicating nodes
Returns
the ionospheric plus tropospheric scintillation loss for NTN scenarios

Definition at line 219 of file three-gpp-propagation-loss-model.cc.

References troposphericScintillationLoss.

◆ ComputeNtnPathloss()

double anonymous_namespace{three-gpp-propagation-loss-model.cc}::ComputeNtnPathloss ( double  freq,
double  dist3d 
)

Computes the free-space path loss using the formula described in 3GPP TR 38.811, Table 6.6.2.

Parameters
freqthe operating frequency
dist3dthe 3D distance between the communicating nodes
Returns
the path loss for NTN scenarios

Definition at line 182 of file three-gpp-propagation-loss-model.cc.

◆ GetBsUtDistancesAndHeights()

std::tuple< double, double, double, double > anonymous_namespace{three-gpp-propagation-loss-model.cc}::GetBsUtDistancesAndHeights ( ns3::Ptr< const ns3::MobilityModel a,
ns3::Ptr< const ns3::MobilityModel b 
)

Get the base station and user terminal relative distances and heights.

Parameters
athe mobility model of terminal a
bthe mobility model of terminal b
Returns
The tuple [dist2D, dist3D, hBs, hUt], where dist2D and dist3D are the 2D and 3D distances between a and b, respectively, hBs is the bigger height and hUt the smallest.

Definition at line 144 of file three-gpp-propagation-loss-model.cc.

References ns3::ThreeGppChannelConditionModel::Calculate2dDistance(), and ns3::CalculateDistance().

+ Here is the call graph for this function:

◆ GetBsUtHeightsUmiStreetCanyon()

std::tuple< double, double > anonymous_namespace{three-gpp-propagation-loss-model.cc}::GetBsUtHeightsUmiStreetCanyon ( double  heightA,
double  heightB 
)

Get the base station and user terminal heights for the UmiStreetCanyon scenario.

Parameters
heightAthe first height in meters
heightBthe second height in meters
Returns
The tuple [hBs, hUt], where hBs is assumed to be = 10 and hUt other height.

Definition at line 165 of file three-gpp-propagation-loss-model.cc.

Variable Documentation

◆ atmosphericAbsorption

const double anonymous_namespace{three-gpp-propagation-loss-model.cc}::atmosphericAbsorption[101]
Initial value:
= {
0, 0.0300, 0.0350, 0.0380, 0.0390, 0.0410, 0.0420, 0.0450, 0.0480, 0.0500,
0.0530, 0.0587, 0.0674, 0.0789, 0.0935, 0.1113, 0.1322, 0.1565, 0.1841, 0.2153,
0.2500, 0.3362, 0.4581, 0.5200, 0.5200, 0.5000, 0.4500, 0.3850, 0.3200, 0.2700,
0.2500, 0.2517, 0.2568, 0.2651, 0.2765, 0.2907, 0.3077, 0.3273, 0.3493, 0.3736,
0.4000, 0.4375, 0.4966, 0.5795, 0.6881, 0.8247, 0.9912, 1.1900, 1.4229, 1.6922,
2.0000, 4.2654, 10.1504, 19.2717, 31.2457, 45.6890, 62.2182, 80.4496, 100.0000, 140.0205,
170.0000, 100.0000, 78.1682, 59.3955, 43.5434, 30.4733, 20.0465, 12.1244, 6.5683, 3.2397,
2.0000, 1.7708, 1.5660, 1.3858, 1.2298, 1.0981, 0.9905, 0.9070, 0.8475, 0.8119,
0.8000, 0.8000, 0.8000, 0.8000, 0.8000, 0.8000, 0.8000, 0.8000, 0.8000, 0.8000,
0.8000, 0.8029, 0.8112, 0.8243, 0.8416, 0.8625, 0.8864, 0.9127, 0.9408, 0.9701,
1.0000}

Array containing the attenuation given by atmospheric absorption.

100 samples are selected for frequencies from 1GHz to 100GHz. In order to get the atmospheric absorption loss for a given frequency f: 1- round f to the closest integer between 0 and 100. 2- use the obtained integer to access the corresponding element in the array, that will give the attenuation at that frequency. Data is obtained form ITU-R P.676 Figure 6.

Definition at line 104 of file three-gpp-propagation-loss-model.cc.

Referenced by ComputeAtmosphericAbsorptionLoss().

◆ M_C

constexpr double anonymous_namespace{three-gpp-propagation-loss-model.cc}::M_C = 3.0e8
constexpr

propagation velocity in free space

Definition at line 266 of file three-gpp-propagation-loss-model.cc.

◆ SFCL_DenseUrban

const std::map<int, std::vector<float> > anonymous_namespace{three-gpp-propagation-loss-model.cc}::SFCL_DenseUrban
Initial value:
{
{10, {3.5, 15.5, 34.3, 2.9, 17.1, 44.3}},
{20, {3.4, 13.9, 30.9, 2.4, 17.1, 39.9}},
{30, {2.9, 12.4, 29.0, 2.7, 15.6, 37.5}},
{40, {3.0, 11.7, 27.7, 2.4, 14.6, 35.8}},
{50, {3.1, 10.6, 26.8, 2.4, 14.2, 34.6}},
{60, {2.7, 10.5, 26.2, 2.7, 12.6, 33.8}},
{70, {2.5, 10.1, 25.8, 2.6, 12.1, 33.3}},
{80, {2.3, 9.2, 25.5, 2.8, 12.3, 33.0}},
{90, {1.2, 9.2, 25.5, 0.6, 12.3, 32.9}},
}

The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Dense Urban scenario.

Definition at line 53 of file three-gpp-propagation-loss-model.cc.

◆ SFCL_SuburbanRural

const std::map<int, std::vector<float> > anonymous_namespace{three-gpp-propagation-loss-model.cc}::SFCL_SuburbanRural
Initial value:
{
{10, {1.79, 8.93, 19.52, 1.9, 10.7, 29.5}},
{20, {1.14, 9.08, 18.17, 1.6, 10.0, 24.6}},
{30, {1.14, 8.78, 18.42, 1.9, 11.2, 21.9}},
{40, {0.92, 10.25, 18.28, 2.3, 11.6, 20.0}},
{50, {1.42, 10.56, 18.63, 2.7, 11.8, 18.7}},
{60, {1.56, 10.74, 17.68, 3.1, 10.8, 17.8}},
{70, {0.85, 10.17, 16.5, 3.0, 10.8, 17.2}},
{80, {0.72, 11.52, 16.3, 3.6, 10.8, 16.9}},
{90, {0.72, 11.52, 16.3, 0.4, 10.8, 16.8}},
}

The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Suburban and Rural scenarios.

Definition at line 85 of file three-gpp-propagation-loss-model.cc.

◆ SFCL_Urban

const std::map<int, std::vector<float> > anonymous_namespace{three-gpp-propagation-loss-model.cc}::SFCL_Urban
Initial value:
{
{10, {4, 6, 34.3, 4, 6, 44.3}},
{20, {4, 6, 30.9, 4, 6, 39.9}},
{30, {4, 6, 29.0, 4, 6, 37.5}},
{40, {4, 6, 27.7, 4, 6, 35.8}},
{50, {4, 6, 26.8, 4, 6, 34.6}},
{60, {4, 6, 26.2, 4, 6, 33.8}},
{70, {4, 6, 25.8, 4, 6, 33.3}},
{80, {4, 6, 25.5, 4, 6, 33.0}},
{90, {4, 6, 25.5, 4, 6, 32.9}},
}

The map containing the 3GPP value regarding Shadow Fading and Clutter Loss tables for the NTN Urban scenario.

Definition at line 69 of file three-gpp-propagation-loss-model.cc.

◆ troposphericScintillationLoss

const std::map<int, float> anonymous_namespace{three-gpp-propagation-loss-model.cc}::troposphericScintillationLoss
Initial value:
{
{10, {1.08}},
{20, {0.48}},
{30, {0.30}},
{40, {0.22}},
{50, {0.17}},
{60, {0.13}},
{70, {0.12}},
{80, {0.12}},
{90, {0.12}},
}

Map containing the Tropospheric attenuation in dB with 99% probability at 20 GHz in Toulouse used for tropospheric scintillation losses.

From Table 6.6.6.2.1-1 of 3GPP TR 38.811.

Definition at line 121 of file three-gpp-propagation-loss-model.cc.

Referenced by ComputeIonosphericPlusTroposphericScintillationLoss().