Tr38901PathLossModel.h Source File

Simu5G: Tr38901PathLossModel.h Source File
Simu5G
Tr38901PathLossModel.h
1//
2// Simu5G
3//
4// Copyright (C) 2012-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
5// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
6//
7// This file is part of a software released under the license included in file
8// "license.pdf". Please read LICENSE and README files before using it.
9// The above files and the present reference are part of the software itself,
10// and cannot be removed from it.
11//
12
13#ifndef STACK_PHY_CHANNELMODEL_TR38901PATHLOSSMODEL_H_
14#define STACK_PHY_CHANNELMODEL_TR38901PATHLOSSMODEL_H_
15
16#include "simu5g/stack/phy/channelmodel/Tr36873PathLossModel.h"
17
18namespace simu5g {
19
39{
40 public:
41 double computePathLoss(double d3D, double d2D, bool los) override;
42 double computeLosProbability(double d3D, double d2D) override;
43 double getShadowingStdDev(double d3D, double d2D, bool losState) override;
44
45 /*
46 * Select the low-loss (default) or high-loss building-penetration model
47 * of table 7.4.3-2 of TR 38.901 for the NLOS-through-wall term. Set by
48 * the owning channel model from its "useBuildingPenetrationHighLossModel"
49 * parameter.
50 */
51 void setUseBuildingPenetrationHighLossModel(bool value) { useBuildingPenetrationHighLossModel_ = value; }
52
53 private:
54 double computeIndoor3D(double threeDimDistance, double twoDimDistance, bool los);
55 double computeUrbanMicro3D(double threeDimDistance, double twoDimDistance, bool los);
56 double computeUrbanMacro3D(double threeDimDistance, double twoDimDistance, bool los);
57 double computeRuralMacro3D(double threeDimDistance, double twoDimDistance, bool los);
58
59 /*
60 * Compute the building penetration loss for an indoor UE.
61 * See section 7.4.3 of TR 38.901.
62 */
63 double computePenetrationLoss(double threeDimDistance);
64
65 // flag for using the high-loss or low-loss building-penetration model
66 // see table 7.4.3-2 in TR 38.901
67 bool useBuildingPenetrationHighLossModel_ = false;
68};
69
70} //namespace
71
72#endif
Definition Tr36873PathLossModel.h:42
Definition Tr38901PathLossModel.h:39
Definition AlertReceiver.h:24