mirror of
https://gitlab.ibr.cs.tu-bs.de/tschuber/ns-3-leo.git
synced 2025-06-08 01:53:58 +02:00
Add user link parameters
This commit is contained in:
parent
bb3bcb627c
commit
7293dbbad1
12 changed files with 247 additions and 96 deletions
|
@ -40,25 +40,55 @@ LeoChannelHelper::LeoChannelHelper (std::string constellation) :
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LeoChannelHelper::SetConstellation (std::string constellation);
|
LeoChannelHelper::SetConstellation (std::string constellation)
|
||||||
{
|
{
|
||||||
if (constellation == "Starlink")
|
if (constellation == "StarlinkGateway")
|
||||||
{
|
{
|
||||||
SetConstellationAttributes (LEO_STARLINK_EIRP,
|
SetConstellationAttributes (LEO_STARLINK_GATEWAY_EIRP,
|
||||||
LEO_STARLINK_ELEVATION_ANGLE,
|
LEO_STARLINK_GATEWAY_ELEVATION_ANGLE,
|
||||||
LEO_STARLINK_FSPL,
|
LEO_STARLINK_GATEWAY_FSPL,
|
||||||
LEO_STARLINK_ATMOSPHERIC_LOSS,
|
LEO_STARLINK_GATEWAY_ATMOSPHERIC_LOSS,
|
||||||
LEO_STARLINK_LINK_MARGIN,
|
LEO_STARLINK_GATEWAY_LINK_MARGIN,
|
||||||
LEO_STARLINK_DATA_RATE);
|
LEO_STARLINK_GATEWAY_DATA_RATE,
|
||||||
|
LEO_STARLINK_GATEWAY_RX_ANTENNA_GAIN,
|
||||||
|
0.0 // TODO
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else if (constellation == "Telesat")
|
else if (constellation == "StarlinkUser")
|
||||||
{
|
{
|
||||||
SetConstellationAttributes (LEO_TELESAT_EIRP,
|
SetConstellationAttributes (LEO_STARLINK_USER_EIRP,
|
||||||
LEO_TELESAT_ELEVATION_ANGLE,
|
LEO_STARLINK_USER_ELEVATION_ANGLE,
|
||||||
LEO_TELESAT_FSPL,
|
LEO_STARLINK_USER_FSPL,
|
||||||
LEO_TELESAT_ATMOSPHERIC_LOSS,
|
LEO_STARLINK_USER_ATMOSPHERIC_LOSS,
|
||||||
LEO_TELESAT_LINK_MARGIN,
|
LEO_STARLINK_USER_LINK_MARGIN,
|
||||||
LEO_TELESAT_DATA_RATE);
|
LEO_STARLINK_USER_DATA_RATE,
|
||||||
|
LEO_STARLINK_USER_RX_ANTENNA_GAIN,
|
||||||
|
0.0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else if (constellation == "TelesatGateway")
|
||||||
|
{
|
||||||
|
SetConstellationAttributes (LEO_TELESAT_GATEWAY_EIRP,
|
||||||
|
LEO_TELESAT_GATEWAY_ELEVATION_ANGLE,
|
||||||
|
LEO_TELESAT_GATEWAY_FSPL,
|
||||||
|
LEO_TELESAT_GATEWAY_ATMOSPHERIC_LOSS,
|
||||||
|
LEO_TELESAT_GATEWAY_LINK_MARGIN,
|
||||||
|
LEO_TELESAT_GATEWAY_DATA_RATE,
|
||||||
|
LEO_TELESAT_GATEWAY_RX_ANTENNA_GAIN,
|
||||||
|
0.0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else if (constellation == "TelesatUser")
|
||||||
|
{
|
||||||
|
SetConstellationAttributes (LEO_TELESAT_USER_EIRP,
|
||||||
|
LEO_TELESAT_USER_ELEVATION_ANGLE,
|
||||||
|
LEO_TELESAT_USER_FSPL,
|
||||||
|
LEO_TELESAT_USER_ATMOSPHERIC_LOSS,
|
||||||
|
LEO_TELESAT_USER_LINK_MARGIN,
|
||||||
|
LEO_TELESAT_USER_DATA_RATE,
|
||||||
|
LEO_TELESAT_USER_RX_ANTENNA_GAIN,
|
||||||
|
0.0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -72,11 +102,19 @@ LeoChannelHelper::SetConstellationAttributes (double eirp,
|
||||||
double fspl,
|
double fspl,
|
||||||
double atmosphericLoss,
|
double atmosphericLoss,
|
||||||
double linkMargin,
|
double linkMargin,
|
||||||
double dataRate)
|
double dataRate,
|
||||||
|
double rxGain,
|
||||||
|
double rxLoss)
|
||||||
{
|
{
|
||||||
m_gndDeviceFactory.Set ("TxPower", DoubleValue (eirp));
|
m_gndDeviceFactory.Set ("TxPower", DoubleValue (eirp));
|
||||||
m_satDeviceFactory.Set ("TxPower", DoubleValue (eirp));
|
m_satDeviceFactory.Set ("TxPower", DoubleValue (eirp));
|
||||||
|
|
||||||
|
m_gndDeviceFactory.Set ("RxGain", DoubleValue (rxGain));
|
||||||
|
m_gndDeviceFactory.Set ("RxLoss", DoubleValue (rxLoss));
|
||||||
|
|
||||||
|
m_satDeviceFactory.Set ("RxLoss", DoubleValue (rxGain));
|
||||||
|
m_satDeviceFactory.Set ("RxGain", DoubleValue (rxLoss));
|
||||||
|
|
||||||
m_gndDeviceFactory.Set ("DataRate", DoubleValue (dataRate));
|
m_gndDeviceFactory.Set ("DataRate", DoubleValue (dataRate));
|
||||||
m_satDeviceFactory.Set ("DataRate", DoubleValue (dataRate));
|
m_satDeviceFactory.Set ("DataRate", DoubleValue (dataRate));
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,9 @@ private:
|
||||||
double fspl,
|
double fspl,
|
||||||
double atmosphericLoss,
|
double atmosphericLoss,
|
||||||
double linkMargin,
|
double linkMargin,
|
||||||
double dataRate);
|
double dataRate,
|
||||||
|
double rxGain,
|
||||||
|
double rxLoss);
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "ns3/log.h"
|
#include "ns3/log.h"
|
||||||
#include "ns3/enum.h"
|
#include "ns3/enum.h"
|
||||||
|
#include "ns3/double.h"
|
||||||
|
|
||||||
#include "leo-mock-net-device.h"
|
#include "leo-mock-net-device.h"
|
||||||
|
|
||||||
|
@ -25,6 +26,16 @@ LeoMockNetDevice::GetTypeId (void)
|
||||||
MakeEnumChecker (
|
MakeEnumChecker (
|
||||||
DeviceType::GND, "ns3::LeoMockNetDevice::NetDeviceType::GND",
|
DeviceType::GND, "ns3::LeoMockNetDevice::NetDeviceType::GND",
|
||||||
DeviceType::SAT, "ns3::LeoMockNetDevice::NetDeviceType::SAT"))
|
DeviceType::SAT, "ns3::LeoMockNetDevice::NetDeviceType::SAT"))
|
||||||
|
.AddAttribute ("ReceiverGain",
|
||||||
|
"Receiver gain in dBm",
|
||||||
|
DoubleValue (0.0),
|
||||||
|
MakeDoubleAccessor (&LeoMockNetDevice::m_rxGain),
|
||||||
|
MakeDoubleChecker<double> ())
|
||||||
|
.AddAttribute ("ReceiverLoss",
|
||||||
|
"Receiver loss in dBm",
|
||||||
|
DoubleValue (0.0),
|
||||||
|
MakeDoubleAccessor (&LeoMockNetDevice::m_rxLoss),
|
||||||
|
MakeDoubleChecker<double> ())
|
||||||
;
|
;
|
||||||
return tid;
|
return tid;
|
||||||
};
|
};
|
||||||
|
@ -45,4 +56,10 @@ LeoMockNetDevice::SetDeviceType (LeoMockNetDevice::DeviceType deviceType)
|
||||||
m_deviceType = deviceType;
|
m_deviceType = deviceType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double
|
||||||
|
LeoMockNetDevice::DoCalcRxPower (double rxPower) const
|
||||||
|
{
|
||||||
|
return rxPower - m_rxLoss + m_rxGain;
|
||||||
|
}
|
||||||
|
|
||||||
}; /* namspace ns3 */
|
}; /* namspace ns3 */
|
||||||
|
|
|
@ -30,8 +30,13 @@ public:
|
||||||
DeviceType GetDeviceType () const;
|
DeviceType GetDeviceType () const;
|
||||||
void SetDeviceType (DeviceType deviceType);
|
void SetDeviceType (DeviceType deviceType);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual double DoCalcRxPower (double rxPower) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DeviceType m_deviceType;
|
DeviceType m_deviceType;
|
||||||
|
double m_rxLoss;
|
||||||
|
double m_rxGain;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,30 +21,55 @@ namespace ns3 {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LEO_ONEWEB_FREQUENCY 28.5 // GHz
|
// gateway uplink
|
||||||
#define LEO_ONEWEB_BANDWIDTH 0.25 // GHz
|
#define LEO_ONEWEB_GATEWAY_FREQUENCY 28.5 // GHz
|
||||||
#define LEO_ONEWEB_TX_ANTENNA_D 2.4 // m
|
#define LEO_ONEWEB_GATEWAY_BANDWIDTH 0.25 // GHz
|
||||||
#define LEO_ONEWEB_EIRP 93.2 // dBm
|
#define LEO_ONEWEB_GATEWAY_TX_ANTENNA_D 2.4 // m
|
||||||
#define LEO_ONEWEB_MODCOD "256APSK 32/45" // -
|
#define LEO_ONEWEB_GATEWAY_EIRP 93.2 // dBm
|
||||||
#define LEO_ONEWEB_ROLL_OFF_FACTOR 0.1 // -
|
#define LEO_ONEWEB_GATEWAY_MODCOD "256APSK 32/45" // -
|
||||||
#define LEO_ONEWEB_SPECTRAL_EFF 5.1 // bps/Hz
|
#define LEO_ONEWEB_GATEWAY_ROLL_OFF_FACTOR 0.1 // -
|
||||||
#define LEO_ONEWEB_PATH_DISTANCE 1504 // km
|
#define LEO_ONEWEB_GATEWAY_SPECTRAL_EFF 5.1 // bps/Hz
|
||||||
#define LEO_ONEWEB_ELEVATION_ANGLE 55 // deg
|
#define LEO_ONEWEB_GATEWAY_PATH_DISTANCE 1504 // km
|
||||||
#define LEO_ONEWEB_FSPL 185.1 // dB
|
#define LEO_ONEWEB_GATEWAY_ELEVATION_ANGLE 55 // deg
|
||||||
#define LEO_ONEWEB_ATMOSPHERIC_LOSS 2.3 // dB
|
#define LEO_ONEWEB_GATEWAY_FSPL 185.1 // dB
|
||||||
#define LEO_ONEWEB_RX_ANTENNA_GAIN 37.8 // dBi
|
#define LEO_ONEWEB_GATEWAY_ATMOSPHERIC_LOSS 2.3 // dB
|
||||||
#define LEO_ONEWEB_SYSTEM_TEMP 447.2 // K
|
#define LEO_ONEWEB_GATEWAY_RX_ANTENNA_GAIN 37.8 // dBi
|
||||||
#define LEO_ONEWEB_G_T 11.3 // dB/K
|
#define LEO_ONEWEB_GATEWAY_SYSTEM_TEMP 447.2 // K
|
||||||
#define LEO_ONEWEB_RX_C_N0 32.5 // dB
|
#define LEO_ONEWEB_GATEWAY_G_T 11.3 // dB/K
|
||||||
#define LEO_ONEWEB_RX_C_ACI 27 // dB
|
#define LEO_ONEWEB_GATEWAY_RX_C_N0 32.5 // dB
|
||||||
#define LEO_ONEWEB_RX_C_ASI 27 // dB
|
#define LEO_ONEWEB_GATEWAY_RX_C_ACI 27 // dB
|
||||||
#define LEO_ONEWEB_RX_C_XPI 25 // dB
|
#define LEO_ONEWEB_GATEWAY_RX_C_ASI 27 // dB
|
||||||
#define LEO_ONEWEB_HPA_C_3IM 30 // dB
|
#define LEO_ONEWEB_GATEWAY_RX_C_XPI 25 // dB
|
||||||
#define LEO_ONEWEB_RX_EB_N0_I0 13.3 // dB
|
#define LEO_ONEWEB_GATEWAY_HPA_C_3IM 30 // dB
|
||||||
#define LEO_ONEWEB_REQ_EB_N0 12.3 // dB
|
#define LEO_ONEWEB_GATEWAY_RX_EB_N0_I0 13.3 // dB
|
||||||
#define LEO_ONEWEB_LINK_MARGIN 1.03 // dB
|
#define LEO_ONEWEB_GATEWAY_REQ_EB_N0 12.3 // dB
|
||||||
#define LEO_ONEWEB_DATA_RATE 1341.1 // Mbps
|
#define LEO_ONEWEB_GATEWAY_LINK_MARGIN 1.03 // dB
|
||||||
#define LEO_ONEWEB_SHANNON_LIMIT 1.06 // dB
|
#define LEO_ONEWEB_GATEWAY_DATA_RATE 1341.1 // Mbps
|
||||||
|
#define LEO_ONEWEB_GATEWAY_SHANNON_LIMIT 1.06 // dB
|
||||||
|
|
||||||
|
// user uplink
|
||||||
|
#define LEO_ONEWEB_USER_FREQUENCY 18.5 // GHz
|
||||||
|
#define LEO_ONEWEB_USER_BANDWIDTH 0.25 // GHz
|
||||||
|
#define LEO_ONEWEB_USER_EIRP 36.0 // dBm
|
||||||
|
#define LEO_ONEWEB_USER_MODCOD "16APSK28/45" // -
|
||||||
|
#define LEO_ONEWEB_USER_ROLL_OFF_FACTOR 0.1 // -
|
||||||
|
#define LEO_ONEWEB_USER_SPECTRAL_EFF 2.23 // bps/Hz
|
||||||
|
#define LEO_ONEWEB_USER_PATH_DISTANCE 2439 // km
|
||||||
|
#define LEO_ONEWEB_USER_ELEVATION_ANGLE 20 // deg
|
||||||
|
#define LEO_ONEWEB_USER_FSPL 185.5 // dB
|
||||||
|
#define LEO_ONEWEB_USER_ATMOSPHERIC_LOSS 2.0 // dB
|
||||||
|
#define LEO_ONEWEB_GATEWAY_RX_ANTENNA_D 1 // m
|
||||||
|
#define LEO_ONEWEB_USER_RX_ANTENNA_GAIN 43.5 // dBi
|
||||||
|
#define LEO_ONEWEB_USER_SYSTEM_TEMP 285.3 // K
|
||||||
|
#define LEO_ONEWEB_USER_RX_C_N0 9.6 // dB
|
||||||
|
#define LEO_ONEWEB_USER_RX_C_ASI 30 // dB
|
||||||
|
#define LEO_ONEWEB_USER_RX_C_XPI 25 // dB
|
||||||
|
#define LEO_ONEWEB_USER_HPA_C_3IM 20 // dB
|
||||||
|
#define LEO_ONEWEB_USER_RX_EB_N0_I0 5.5 // dB
|
||||||
|
#define LEO_ONEWEB_USER_REQ_EB_N0 4.6 // dB
|
||||||
|
#define LEO_ONEWEB_USER_LINK_MARGIN 0.85 // dB
|
||||||
|
#define LEO_ONEWEB_USER_DATA_RATE 558.7 // Mbps
|
||||||
|
#define LEO_ONEWEB_USER_SHANNON_LIMIT 1.49 // dB
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -81,10 +81,12 @@ LeoPropagationLossModel::DoCalcRxPower (double txPowerDbm,
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
double rxc = -m_atmosphericLoss - m_freeSpacePathLoss;
|
// txPowerDbm includes tx antenna gain and losses
|
||||||
NS_LOG_DEBUG ("attenuation coefficient= " << rxc << " dB");
|
// receiver loss and gain added at net device
|
||||||
|
// P_{RX} = P_{TX} + G_{TX} - L_{TX} - L_{FS} - L_M + G_{RX} - L_{RX}
|
||||||
|
double rxc = txPowerDbm - m_atmosphericLoss - m_freeSpacePathLoss - m_linkMargin;
|
||||||
|
|
||||||
return txPowerDbm + rxc;
|
return rxc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t
|
int64_t
|
||||||
|
|
|
@ -21,30 +21,55 @@ namespace ns3 {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LEO_STARLINK_FREQUENCY 28.5 // GHz
|
// gateway uplink
|
||||||
#define LEO_STARLINK_BANDWIDTH 0.5 // GHz
|
#define LEO_STARLINK_GATEWAY_FREQUENCY 28.5 // GHz
|
||||||
#define LEO_STARLINK_TX_ANTENNA_D 3.5 // m
|
#define LEO_STARLINK_GATEWAY_BANDWIDTH 0.5 // GHz
|
||||||
#define LEO_STARLINK_EIRP 98.4 // dBm
|
#define LEO_STARLINK_GATEWAY_TX_ANTENNA_D 3.5 // m
|
||||||
#define LEO_STARLINK_MODCOD "256APSK 3/4" // -
|
#define LEO_STARLINK_GATEWAY_EIRP 98.4 // dBm
|
||||||
#define LEO_STARLINK_ROLL_OFF_FACTOR 0.1 // -
|
#define LEO_STARLINK_GATEWAY_MODCOD "256APSK 3/4" // -
|
||||||
#define LEO_STARLINK_SPECTRAL_EFF 5.4 // bps/Hz
|
#define LEO_STARLINK_GATEWAY_ROLL_OFF_FACTOR 0.1 // -
|
||||||
#define LEO_STARLINK_PATH_DISTANCE 1684 // km
|
#define LEO_STARLINK_GATEWAY_SPECTRAL_EFF 5.4 // bps/Hz
|
||||||
#define LEO_STARLINK_ELEVATION_ANGLE 40 // deg
|
#define LEO_STARLINK_GATEWAY_PATH_DISTANCE 1684 // km
|
||||||
#define LEO_STARLINK_FSPL 186.1 // dB
|
#define LEO_STARLINK_GATEWAY_ELEVATION_ANGLE 40 // deg
|
||||||
#define LEO_STARLINK_ATMOSPHERIC_LOSS 2.9 // dB
|
#define LEO_STARLINK_GATEWAY_FSPL 186.1 // dB
|
||||||
#define LEO_STARLINK_RX_ANTENNA_GAIN 40.9 // dBi
|
#define LEO_STARLINK_GATEWAY_ATMOSPHERIC_LOSS 2.9 // dB
|
||||||
#define LEO_STARLINK_SYSTEM_TEMP 535.9 // K
|
#define LEO_STARLINK_GATEWAY_RX_ANTENNA_GAIN 40.9 // dBi
|
||||||
#define LEO_STARLINK_G_T 13.6 // dB/K
|
#define LEO_STARLINK_GATEWAY_SYSTEM_TEMP 535.9 // K
|
||||||
#define LEO_STARLINK_RX_C_N0 32.4 // dB
|
#define LEO_STARLINK_GATEWAY_G_T 13.6 // dB/K
|
||||||
#define LEO_STARLINK_RX_C_ACI 27 // dB
|
#define LEO_STARLINK_GATEWAY_RX_C_N0 32.4 // dB
|
||||||
#define LEO_STARLINK_RX_C_ASI 27 // dB
|
#define LEO_STARLINK_GATEWAY_RX_C_ACI 27 // dB
|
||||||
#define LEO_STARLINK_RX_C_XPI 25 // dB
|
#define LEO_STARLINK_GATEWAY_RX_C_ASI 27 // dB
|
||||||
#define LEO_STARLINK_HPA_C_3IM 30 // dB
|
#define LEO_STARLINK_GATEWAY_RX_C_XPI 25 // dB
|
||||||
#define LEO_STARLINK_RX_EB_N0_I0 13.3 // dB
|
#define LEO_STARLINK_GATEWAY_HPA_C_3IM 30 // dB
|
||||||
#define LEO_STARLINK_REQ_EB_N0 12.3 // dB
|
#define LEO_STARLINK_GATEWAY_RX_EB_N0_I0 13.3 // dB
|
||||||
#define LEO_STARLINK_LINK_MARGIN 1.02 // dB
|
#define LEO_STARLINK_GATEWAY_REQ_EB_N0 12.3 // dB
|
||||||
#define LEO_STARLINK_DATA_RATE 2682.1 // Mbps
|
#define LEO_STARLINK_GATEWAY_LINK_MARGIN 1.02 // dB
|
||||||
#define LEO_STARLINK_SHANNON_LIMIT 1.06 // dB
|
#define LEO_STARLINK_GATEWAY_DATA_RATE 2682.1 // Mbps
|
||||||
|
#define LEO_STARLINK_GATEWAY_SHANNON_LIMIT 1.06 // dB
|
||||||
|
|
||||||
|
// user uplink
|
||||||
|
#define LEO_STARLINK_USER_FREQUENCY 13.5 // GHz
|
||||||
|
#define LEO_STARLINK_USER_BANDWIDTH 0.25 // GHz
|
||||||
|
#define LEO_STARLINK_USER_EIRP 66.7 // dBm
|
||||||
|
#define LEO_STARLINK_USER_MODCOD "16APSK3/4" // -
|
||||||
|
#define LEO_STARLINK_USER_ROLL_OFF_FACTOR 0.1 // -
|
||||||
|
#define LEO_STARLINK_USER_SPECTRAL_EFF 2.7 // bps/Hz
|
||||||
|
#define LEO_STARLINK_USER_PATH_DISTANCE 1684 // km
|
||||||
|
#define LEO_STARLINK_USER_ELEVATION_ANGLE 40 // deg
|
||||||
|
#define LEO_STARLINK_USER_FSPL 179.6 // dB
|
||||||
|
#define LEO_STARLINK_USER_ATMOSPHERIC_LOSS 0.53 // dB
|
||||||
|
#define LEO_STARLINK_GATEWAY_RX_ANTENNA_D 0.7 // m
|
||||||
|
#define LEO_STARLINK_USER_RX_ANTENNA_GAIN 37.7 // dBi
|
||||||
|
#define LEO_STARLINK_USER_SYSTEM_TEMP 362.9 // K
|
||||||
|
#define LEO_STARLINK_USER_RX_C_N0 12.0 // dB
|
||||||
|
#define LEO_STARLINK_USER_RX_C_ASI 25 // dB
|
||||||
|
#define LEO_STARLINK_USER_RX_C_XPI 22 // dB
|
||||||
|
#define LEO_STARLINK_USER_HPA_C_3IM 25 // dB
|
||||||
|
#define LEO_STARLINK_USER_RX_EB_N0_I0 6.7 // dB
|
||||||
|
#define LEO_STARLINK_USER_REQ_EB_N0 5.9 // dB
|
||||||
|
#define LEO_STARLINK_USER_LINK_MARGIN 0.82 // dB
|
||||||
|
#define LEO_STARLINK_USER_DATA_RATE 674.3 // Mbps
|
||||||
|
#define LEO_STARLINK_USER_SHANNON_LIMIT 1.46 // dB
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,30 +21,55 @@ namespace ns3 {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LEO_TELESAT_FREQUENCY 28.5 // GHz
|
// gateway uplink
|
||||||
#define LEO_TELESAT_BANDWIDTH 2.1 // GHz
|
#define LEO_TELESAT_GATEWAY_FREQUENCY 28.5 // GHz
|
||||||
#define LEO_TELESAT_TX_ANTENNA_D 3.5 // m
|
#define LEO_TELESAT_GATEWAY_BANDWIDTH 2.1 // GHz
|
||||||
#define LEO_TELESAT_EIRP 105.9 // dBm
|
#define LEO_TELESAT_GATEWAY_TX_ANTENNA_D 3.5 // m
|
||||||
#define LEO_TELESAT_MODCOD "64APSK 3/4" // -
|
#define LEO_TELESAT_GATEWAY_EIRP 105.9 // dBm
|
||||||
#define LEO_TELESAT_ROLL_OFF_FACTOR 0.1 // -
|
#define LEO_TELESAT_GATEWAY_MODCOD "64APSK 3/4" // -
|
||||||
#define LEO_TELESAT_SPECTRAL_EFF 4.1 // bps/Hz
|
#define LEO_TELESAT_GATEWAY_ROLL_OFF_FACTOR 0.1 // -
|
||||||
#define LEO_TELESAT_PATH_DISTANCE 2439 // km
|
#define LEO_TELESAT_GATEWAY_SPECTRAL_EFF 4.1 // bps/Hz
|
||||||
#define LEO_TELESAT_ELEVATION_ANGLE 20 // deg
|
#define LEO_TELESAT_GATEWAY_PATH_DISTANCE 2439 // km
|
||||||
#define LEO_TELESAT_FSPL 189.3 // dB
|
#define LEO_TELESAT_GATEWAY_ELEVATION_ANGLE 20 // deg
|
||||||
#define LEO_TELESAT_ATMOSPHERIC_LOSS 4.8 // dB
|
#define LEO_TELESAT_GATEWAY_FSPL 189.3 // dB
|
||||||
#define LEO_TELESAT_RX_ANTENNA_GAIN 31.8 // dBi
|
#define LEO_TELESAT_GATEWAY_ATMOSPHERIC_LOSS 4.8 // dB
|
||||||
#define LEO_TELESAT_SYSTEM_TEMP 868.4 // K
|
#define LEO_TELESAT_GATEWAY_RX_ANTENNA_GAIN 31.8 // dBi
|
||||||
#define LEO_TELESAT_G_T 2.4 // dB/K
|
#define LEO_TELESAT_GATEWAY_SYSTEM_TEMP 868.4 // K
|
||||||
#define LEO_TELESAT_RX_C_N0 25.6 // dB
|
#define LEO_TELESAT_GATEWAY_G_T 2.4 // dB/K
|
||||||
#define LEO_TELESAT_RX_C_ACI 27 // dB
|
#define LEO_TELESAT_GATEWAY_RX_C_N0 25.6 // dB
|
||||||
#define LEO_TELESAT_RX_C_ASI 23.5 // dB
|
#define LEO_TELESAT_GATEWAY_RX_C_ACI 27 // dB
|
||||||
#define LEO_TELESAT_RX_C_XPI 25 // dB
|
#define LEO_TELESAT_GATEWAY_RX_C_ASI 23.5 // dB
|
||||||
#define LEO_TELESAT_HPA_C_3IM 25 // dB
|
#define LEO_TELESAT_GATEWAY_RX_C_XPI 25 // dB
|
||||||
#define LEO_TELESAT_RX_EB_N0_I0 11.4 // dB
|
#define LEO_TELESAT_GATEWAY_HPA_C_3IM 25 // dB
|
||||||
#define LEO_TELESAT_REQ_EB_N0 11.0 // dB
|
#define LEO_TELESAT_GATEWAY_RX_EB_N0_I0 11.4 // dB
|
||||||
#define LEO_TELESAT_LINK_MARGIN 0.36 // dB
|
#define LEO_TELESAT_GATEWAY_REQ_EB_N0 11.0 // dB
|
||||||
#define LEO_TELESAT_DATA_RATE 9857.1 // Mbps
|
#define LEO_TELESAT_GATEWAY_LINK_MARGIN 0.36 // dB
|
||||||
#define LEO_TELESAT_SHANNON_LIMIT 1.09 // dB
|
#define LEO_TELESAT_GATEWAY_DATA_RATE 9857.1 // Mbps
|
||||||
|
#define LEO_TELESAT_GATEWAY_SHANNON_LIMIT 1.09 // dB
|
||||||
|
|
||||||
|
// user uplink
|
||||||
|
#define LEO_TELESAT_USER_FREQUENCY 13.5 // GHz
|
||||||
|
#define LEO_TELESAT_USER_BANDWIDTH 0.25 // GHz
|
||||||
|
#define LEO_TELESAT_USER_EIRP 64.6 // dBm
|
||||||
|
#define LEO_TELESAT_USER_MODCOD "16APSK2/3" // -
|
||||||
|
#define LEO_TELESAT_USER_ROLL_OFF_FACTOR 0.1 // -
|
||||||
|
#define LEO_TELESAT_USER_SPECTRAL_EFF 2.4 // bps/Hz
|
||||||
|
#define LEO_TELESAT_USER_PATH_DISTANCE 1504 // km
|
||||||
|
#define LEO_TELESAT_USER_ELEVATION_ANGLE 55 // deg
|
||||||
|
#define LEO_TELESAT_USER_FSPL 178.6 // dB
|
||||||
|
#define LEO_TELESAT_USER_ATMOSPHERIC_LOSS 0.41 // dB
|
||||||
|
#define LEO_TELESAT_GATEWAY_RX_ANTENNA_D 0.75 // m
|
||||||
|
#define LEO_TELESAT_USER_RX_ANTENNA_GAIN 38.3 // dBi
|
||||||
|
#define LEO_TELESAT_USER_SYSTEM_TEMP 350.1 // K
|
||||||
|
#define LEO_TELESAT_USER_RX_C_N0 10.5 // dB
|
||||||
|
#define LEO_TELESAT_USER_RX_C_ASI 25 // dB
|
||||||
|
#define LEO_TELESAT_USER_RX_C_XPI 20 // dB
|
||||||
|
#define LEO_TELESAT_USER_HPA_C_3IM 30 // dB
|
||||||
|
#define LEO_TELESAT_USER_RX_EB_N0_I0 5.9 // dB
|
||||||
|
#define LEO_TELESAT_USER_REQ_EB_N0 5.2 // dB
|
||||||
|
#define LEO_TELESAT_USER_LINK_MARGIN 0.76 // dB
|
||||||
|
#define LEO_TELESAT_USER_DATA_RATE 599.4 // Mbps
|
||||||
|
#define LEO_TELESAT_USER_SHANNON_LIMIT 1.49 // dB
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -156,7 +156,7 @@ MockChannel::GetPropagationLoss () const
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MockChannel::SetPropagationLoss (PropagationLossModel model)
|
MockChannel::SetPropagationLoss (Ptr<PropagationLossModel> model)
|
||||||
{
|
{
|
||||||
m_propagationLoss = model;
|
m_propagationLoss = model;
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,7 +73,7 @@ public:
|
||||||
virtual bool TransmitStart (Ptr<const Packet> p, uint32_t devId, Address dst, Time txTime) = 0;
|
virtual bool TransmitStart (Ptr<const Packet> p, uint32_t devId, Address dst, Time txTime) = 0;
|
||||||
|
|
||||||
Ptr<PropagationLossModel> GetPropagationLoss () const;
|
Ptr<PropagationLossModel> GetPropagationLoss () const;
|
||||||
void SetPropagationLoss (PropagationLossModel model);
|
void SetPropagationLoss (Ptr<PropagationLossModel> model);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
TracedCallback<Ptr<const Packet>, // Packet being transmitted
|
TracedCallback<Ptr<const Packet>, // Packet being transmitted
|
||||||
|
|
|
@ -414,12 +414,18 @@ MockNetDevice::SetReceiveErrorModel (Ptr<ErrorModel> em)
|
||||||
m_receiveErrorModel = em;
|
m_receiveErrorModel = em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double
|
||||||
|
MockNetDevice::DoCalcRxPower (double rxPower) const
|
||||||
|
{
|
||||||
|
return rxPower;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MockNetDevice::Receive (Ptr<Packet> packet,
|
MockNetDevice::Receive (Ptr<Packet> packet,
|
||||||
Ptr<MockNetDevice> senderDevice,
|
Ptr<MockNetDevice> senderDevice,
|
||||||
double rxPower)
|
double rxPower)
|
||||||
{
|
{
|
||||||
NS_LOG_FUNCTION (this << packet << senderDevice);
|
NS_LOG_FUNCTION (this << packet << senderDevice << rxPower);
|
||||||
|
|
||||||
if (senderDevice == this)
|
if (senderDevice == this)
|
||||||
{
|
{
|
||||||
|
@ -428,6 +434,8 @@ MockNetDevice::Receive (Ptr<Packet> packet,
|
||||||
|
|
||||||
m_phyRxEndTrace (packet);
|
m_phyRxEndTrace (packet);
|
||||||
|
|
||||||
|
rxPower = DoCalcRxPower (rxPower);
|
||||||
|
|
||||||
if (rxPower < m_rxThreshold)
|
if (rxPower < m_rxThreshold)
|
||||||
{
|
{
|
||||||
// Received power is below threshold
|
// Received power is below threshold
|
||||||
|
|
|
@ -147,8 +147,10 @@ public:
|
||||||
* arrived at the device.
|
* arrived at the device.
|
||||||
*
|
*
|
||||||
* \param p Ptr to the received packet.
|
* \param p Ptr to the received packet.
|
||||||
|
* \param senderDevice sender
|
||||||
|
* \param rxPower RX power excluding receiver gain and loss
|
||||||
*/
|
*/
|
||||||
void Receive (Ptr<Packet> p, Ptr<MockNetDevice> senderDevice);
|
void Receive (Ptr<Packet> p, Ptr<MockNetDevice> senderDevice, double rxPower);
|
||||||
|
|
||||||
// The remaining methods are documented in ns3::NetDevice*
|
// The remaining methods are documented in ns3::NetDevice*
|
||||||
|
|
||||||
|
@ -206,6 +208,8 @@ protected:
|
||||||
virtual void DoInitialize (void);
|
virtual void DoInitialize (void);
|
||||||
virtual void NotifyNewAggregate (void);
|
virtual void NotifyNewAggregate (void);
|
||||||
|
|
||||||
|
virtual double DoCalcRxPower (double rxPower) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue