23#ifndef SATELLITE_SIGNAL_PARAMETERS_H
24#define SATELLITE_SIGNAL_PARAMETERS_H
29#include "ns3/nstime.h"
30#include "ns3/object.h"
31#include "ns3/packet.h"
163 Ptr<SatSignalParameters>
Copy();
237 m_ifParams->m_ifPowerPerFragment_W = ifPowerPerFragment;
262 std::vector<std::pair<double, double>> ifPowerPerFragment)
264 m_ifParams->m_ifPowerInSatellitePerFragment_W = ifPowerPerFragment;
281 return m_ifParams->m_ifPowerInSatellitePerFragment_W;
288 double rxNoisePowerW,
289 double rxAciIfPowerW,
290 double rxExtNoisePowerW);
299 return m_ifParams->m_rxNoisePowerInSatellite_W;
304 return m_ifParams->m_rxAciIfPowerInSatellite_W;
309 return m_ifParams->m_rxExtNoisePowerInSatellite_W;
315 void SetSinr(
double sinr,
double additionalInterference);
SatBbFrameType_t
BB frame type used in DVB-S2 FWD link.
SatModcod_t
Modulation scheme and coding rate for DVB-S2.
ChannelType_t
Types of channel.
PacketType_t
Packet types.
std::vector< std::pair< double, double > > m_ifPowerInSatellitePerFragment_W
Interference power in the satellite (I) per packet fragment.
~SatInterferenceParameters()
double m_ifPower_W
Interference power (I).
double m_ifPowerInSatellite_W
Interference power in the satellite (I).
double m_sinr
Calculated SINR.
double m_rxNoisePowerInSatellite_W
Rx noise power in satellite.
double m_rxAciIfPowerInSatellite_W
ACI interference power in satellite.
std::vector< std::pair< double, double > > m_ifPowerPerFragment_W
Interference power (I) per packet fragment.
double m_rxExtNoisePowerInSatellite_W
RX external noise power in satellite.
double m_additionalInterference
Callback for SINR calculation.
double m_rxPowerInSatellite_W
The RX power in the satellite in Watts.
static TypeId GetTypeId(void)
Get the type ID.
The SatellitePhyTx models the physical layer transmitter of satellite system.
Ptr< SatPhyTx > m_phyTx
The SatPhyTx instance that is making the transmission.
double GetRxExtNoisePowerInSatellite()
void SetInterferencePowerInSatellite(std::vector< std::pair< double, double > > ifPowerPerFragment)
Set interference power in satellite based on packet fragment.
static TypeId GetTypeId(void)
Get the type ID.
double m_txPower_W
The TX power in Watts.
SatSignalParameters()
default constructor
double GetRxPowerInSatellite()
Time m_duration
The duration of the packet transmission.
double GetAdditionalInterference()
void SetRxPowersInSatellite(double rxPowerW, double rxNoisePowerW, double rxAciIfPowerW, double rxExtNoisePowerW)
Set various power after receiving the packet in the satellite.
void SetInterferencePower(std::vector< std::pair< double, double > > ifPowerPerFragment)
Set interference power based on packet fragment.
uint32_t m_carrierId
The carrier for the packet transmission.
double GetRxAciIfPowerInSatellite()
double GetRxNoisePowerInSatellite()
std::vector< std::pair< double, double > > GetInterferencePowerPerFragment()
Get interference power per packet fragment.
double m_rxPower_W
The RX power in Watts.
std::vector< Ptr< Packet > > PacketsInBurst_t
Buffer for transmissions.
Ptr< SatSignalParameters > Copy()
std::vector< std::pair< double, double > > GetInterferencePowerInSatellitePerFragment()
Get interference power in satellite per packet fragment.
uint32_t m_satId
The sat for the packet transmission.
uint32_t m_beamId
The beam for the packet transmission.
PacketsInBurst_t m_packetsInBurst
The packets being transmitted with this signal i.e.
double m_carrierFreq_hz
The carrier center frequency for the packet transmission.
double GetInterferencePower()
Get interference power (I).
void SetSinr(double sinr, double additionalInterference)
Set computed SINR.
Ptr< SatInterferenceParameters > m_ifParams
double GetInterferencePowerInSatellite()
Get interference power in satellite (I).
txInfo_s m_txInfo
Transmission information including packet type, modcod and waveform ID.
SatEnums::ChannelType_t m_channelType
The SatChannel instance received the packet.
static double ScalarProduct(const std::vector< std::pair< double, double > > &vector)
Scalar product.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Struct for storing the packet specific Tx information.
SatEnums::PacketType_t packetType
uint32_t crdsaUniquePacketId
SatEnums::SatBbFrameType_t frameType
uint32_t fecBlockSizeInBytes
SatEnums::SatModcod_t modCod