3#include "LTENR_Spectrum.h"
4#include "LTENR_AMCTable.h"
7#include "LTENR_Multiplexing.h"
8#include "LTENR_Spectrum.h"
15double calculateSlantRange(
double altitude,
double elevationAngle_rad);
17double calculateNTN_SNR(ptrLTENR_PROPAGATIONINFO propInfo,
double beamformingGain);
19double calculateFreeSpacePathLoss(ptrLTENR_PROPAGATIONINFO propInfo);
21static double NTN_log_normal_distribution(ptrNTN_PROPAGATIONCONFIG info,
double std);
23void calculateNTN_totalloss(ptrLTENR_PROPAGATIONINFO propInfo);
25void calculateNTNAntennaGain(ptrLTENR_PROPAGATIONINFO propInfo);
27void allocateInfo(ptrLTENR_PROPAGATIONINFO propInfo);
29static void updateNTN_elevationAngle(ptrLTENR_PROPAGATIONINFO propInfo);
31void NTN_calculateSINR(ptrLTENR_PROPAGATIONINFO propInfo, UINT CA_ID);
33static double Magnitude(NetSim_COORDINATES* p);
35static double DotProduct(NetSim_COORDINATES* v1,
const NetSim_COORDINATES* v2);
37void CalculateTheta(ptrLTENR_PROPAGATIONINFO propInfo);
39static void NTN_setLOS_state(ptrLTENR_PROPAGATIONINFO propInfo);
41double calculateNTNshadowloss(ptrLTENR_PROPAGATIONINFO propInfo);
43double calculateNTNclutterloss(ptrLTENR_PROPAGATIONINFO propInfo);
45void updateNTNBandwidth(ptrLTENR_PROPAGATIONINFO propInfo);
47double calculateAntennaGain(
double theta,
double k,
double a);
49double getDistancefromBeam(ptrLTENR_PROPAGATIONINFO propInfo);
51void updateNTN_RxG_T(ptrLTENR_PROPAGATIONINFO propInfo);
53void updateNTNRxPower(ptrLTENR_PROPAGATIONINFO propInfo, UINT CA_ID);
55void updateNTN_TxPower(ptrLTENR_PROPAGATIONINFO propInfo, UINT CA_ID);
57double calculateInterferencePower(ptrLTENR_PROPAGATIONINFO propInfo, UINT CA_ID);
59double NTN_calculateCIR_Sinr(
double snr,
double cir);
61NetSim_COORDINATES* getBeamCoordinates(UINT
id);
63int getBeamChannelId(UINT
id);
65void updateNoisePower(ptrLTENR_PROPAGATIONINFO propInfo);
67double calculate_sinr(
double dReceivedPower_dbm,
double interferencePower_dBm,
double bandwidth_mHz);
69double NTNget_LOS_probability(NTN_SCENARIO scenario,
double elevationAngle);
71double get_shadowingSD(NTN_SCENARIO scenario, NTN_LOS_NLOS_STATE state, NTN_CARRIER_BAND band,
double elevationAngle);
73double get_clutterloss(NTN_SCENARIO scenario, NTN_LOS_NLOS_STATE state, NTN_CARRIER_BAND band,
double elevationAngle);
75double quantizeElevationAngle(
double elevAngle);
77int countDistinctBeamChannels(BeamNode* head);
79void updateNTN_EB_by_N0(ptrLTENR_PROPAGATIONINFO propInfo, UINT layerId);
81void NTN_plotUeAssociation(ptrLTENR_PROPAGATIONINFO propInfo,
int CA_ID, UINT layerId,
bool isSelected);