ns3::SatWaveform Class Reference

This class implements the content of one individual DVB-RCS2 waveform. More...

#include "satellite-wave-form-conf.h"

+ Inheritance diagram for ns3::SatWaveform:
+ Collaboration diagram for ns3::SatWaveform:

Public Member Functions

 SatWaveform ()
 Default constructor for SatWaveform. More...
 
 SatWaveform (uint32_t wfId, uint32_t modulatedBits, double codingRate, SatEnums::SatModcod_t modcod, uint32_t payloadBytes, uint32_t lengthInSymbols, uint32_t preambleLengthInSymbols)
 Constructor for SatWaveform. More...
 
void Dump (double carrierBandwidthInHz, double symbolRateInBaud) const
 Dump the contents of the waveform. More...
 
Time GetBurstDuration (double symbolRateInBaud) const
 Get/calculate the burst duration of a waveform based on symbol rate. More...
 
uint32_t GetBurstLengthInSymbols () const
 Get burst length of the waveform in symbols. More...
 
double GetCNoThreshold (double symbolRateInBaud) const
 Get the C/No threshold of the waveform in linear domain. More...
 
SatEnums::SatModcod_t GetModCod () const
 Get MODCOD enum. More...
 
uint32_t GetPayloadInBytes () const
 Get payload of a waveform in bytes. More...
 
Time GetPreambleDuration (double symbolRateInBaud) const
 Get/calculate the preamble duration of a waveform based on symbol rate. More...
 
uint32_t GetPreambleLengthInSymbols () const
 Get preamble length of the waveform in symbols. More...
 
double GetSpectralEfficiency (double carrierBandwidthInHz, double symbolRateInBaud) const
 Get/calculate the spectral efficiency of a waveform. More...
 
double GetThroughputInBitsPerSecond (double symbolRateInBaud) const
 Get/calculate the throughput of a waveform based on symbol rate. More...
 
uint32_t GetWaveformId () const
 Get waveform id. More...
 
void SetEbNoRequirement (double ebnoRequirement)
 Set the Eb/No requirement of the waveform in linear domain based on the used link results. More...
 

Private Attributes

double m_codingRate
 Coding rate. More...
 
double m_ebnoRequirement
 Eb/No threshold calculated with a certain BLER target from the link results. More...
 
uint32_t m_lengthInSymbols
 Length of the burst in symbols. More...
 
SatEnums::SatModcod_t m_modCod
 MODCOD enum. More...
 
uint32_t m_modulatedBits
 Modulated bits QPSK = 2 8PSK = 3 16QAM = 4. More...
 
uint32_t m_payloadBytes
 Payload in bytes. More...
 
uint32_t m_preambleLengthInSymbols
 Length of the preamble in symbols. More...
 
uint32_t m_waveformId
 Id of this waveform. More...
 

Detailed Description

This class implements the content of one individual DVB-RCS2 waveform.

Waveform is defined by modulation scheme, coding rate, payload size in bytes and burst length in symbols.

See also
ETSI EN 301 545-2 Digital Video Broadcasting (DVB); Second Generation Interactive Satellite System (DVB-RCS2); Part 2: Lower Layers for Satellite Standard
  • Annex A Reference waveforms

Definition at line 47 of file satellite-wave-form-conf.h.

Constructor & Destructor Documentation

◆ SatWaveform() [1/2]

ns3::SatWaveform::SatWaveform ( )

Default constructor for SatWaveform.

Definition at line 46 of file satellite-wave-form-conf.cc.

◆ SatWaveform() [2/2]

ns3::SatWaveform::SatWaveform ( uint32_t  wfId,
uint32_t  modulatedBits,
double  codingRate,
SatEnums::SatModcod_t  modcod,
uint32_t  payloadBytes,
uint32_t  lengthInSymbols,
uint32_t  preambleLengthInSymbols 
)

Constructor for SatWaveform.

Parameters
wfIdWaveform id
modulatedBitsModulated bits
codingRateCoding rate
modcodModCod
payloadBytesPayload in bytes
lengthInSymbolsDuration in symbols
preambleLengthInSymbolsPreamble duration in symbols

Definition at line 59 of file satellite-wave-form-conf.cc.

Member Function Documentation

◆ Dump()

void ns3::SatWaveform::Dump ( double  carrierBandwidthInHz,
double  symbolRateInBaud 
) const

Dump the contents of the waveform.

The total carrier bandwidth and symbol rate are needed for spectral efficiency calculation.

Parameters
carrierBandwidthInHzTotal carrier bandwidth including e.g. guard band.
symbolRateInBaudEffective symbol rate where guard band and roll-off has been deduced.

Definition at line 165 of file satellite-wave-form-conf.cc.

References GetBurstDuration(), GetCNoThreshold(), GetSpectralEfficiency(), GetThroughputInBitsPerSecond(), ns3::SatUtils::LinearToDb(), m_codingRate, m_ebnoRequirement, m_lengthInSymbols, m_modulatedBits, and m_payloadBytes.

+ Here is the call graph for this function:

◆ GetBurstDuration()

Time ns3::SatWaveform::GetBurstDuration ( double  symbolRateInBaud) const

Get/calculate the burst duration of a waveform based on symbol rate.

Parameters
symbolRateInBaudSymbol rate
Returns
Burst duration

Definition at line 113 of file satellite-wave-form-conf.cc.

References m_lengthInSymbols.

Referenced by Dump().

+ Here is the caller graph for this function:

◆ GetBurstLengthInSymbols()

uint32_t ns3::SatWaveform::GetBurstLengthInSymbols ( ) const

Get burst length of the waveform in symbols.

Returns
Burst length

Definition at line 99 of file satellite-wave-form-conf.cc.

References m_lengthInSymbols.

◆ GetCNoThreshold()

double ns3::SatWaveform::GetCNoThreshold ( double  symbolRateInBaud) const

Get the C/No threshold of the waveform in linear domain.

Parameters
symbolRateInBaudSymbol rate in baud
Returns
C/No threshold

Convert the Eb/No requirement into C/No requirement by using the carrier symbol rate and log2(modulatedBits). Eb/No = (Es/log2M)/No = (Es/No)*(1/log2M) = C/N * (1/log2M) = C/No * (1/fs) * (1/log2M)

Definition at line 143 of file satellite-wave-form-conf.cc.

References m_codingRate, m_ebnoRequirement, and m_modulatedBits.

Referenced by Dump().

+ Here is the caller graph for this function:

◆ GetModCod()

SatEnums::SatModcod_t ns3::SatWaveform::GetModCod ( ) const

Get MODCOD enum.

Returns
MODCOD enum

Definition at line 85 of file satellite-wave-form-conf.cc.

References m_modCod.

◆ GetPayloadInBytes()

uint32_t ns3::SatWaveform::GetPayloadInBytes ( ) const

Get payload of a waveform in bytes.

Returns
Payload in bytes

Definition at line 92 of file satellite-wave-form-conf.cc.

References m_payloadBytes.

◆ GetPreambleDuration()

Time ns3::SatWaveform::GetPreambleDuration ( double  symbolRateInBaud) const

Get/calculate the preamble duration of a waveform based on symbol rate.

Parameters
symbolRateInBaudSymbol rate
Returns
Preamble duration

Definition at line 120 of file satellite-wave-form-conf.cc.

References m_preambleLengthInSymbols.

◆ GetPreambleLengthInSymbols()

uint32_t ns3::SatWaveform::GetPreambleLengthInSymbols ( ) const

Get preamble length of the waveform in symbols.

Returns
Burst length

Definition at line 106 of file satellite-wave-form-conf.cc.

References m_preambleLengthInSymbols.

◆ GetSpectralEfficiency()

double ns3::SatWaveform::GetSpectralEfficiency ( double  carrierBandwidthInHz,
double  symbolRateInBaud 
) const

Get/calculate the spectral efficiency of a waveform.

Parameters
carrierBandwidthInHzCarrier bandwidth in Hz
symbolRateInBaudSymbol rate in baud
Returns
spectral efficiency in bits/s/Hz

Definition at line 127 of file satellite-wave-form-conf.cc.

References ns3::SatConstVariables::BITS_PER_BYTE, m_lengthInSymbols, and m_payloadBytes.

Referenced by Dump().

+ Here is the caller graph for this function:

◆ GetThroughputInBitsPerSecond()

double ns3::SatWaveform::GetThroughputInBitsPerSecond ( double  symbolRateInBaud) const

Get/calculate the throughput of a waveform based on symbol rate.

Parameters
symbolRateInBaudSymbol rate in baud
Returns
Throughput in bits per second

Definition at line 135 of file satellite-wave-form-conf.cc.

References ns3::SatConstVariables::BITS_PER_BYTE, m_lengthInSymbols, and m_payloadBytes.

Referenced by Dump().

+ Here is the caller graph for this function:

◆ GetWaveformId()

uint32_t ns3::SatWaveform::GetWaveformId ( ) const

Get waveform id.

Returns
Waveform id

Definition at line 78 of file satellite-wave-form-conf.cc.

References m_waveformId.

◆ SetEbNoRequirement()

void ns3::SatWaveform::SetEbNoRequirement ( double  ebnoRequirement)

Set the Eb/No requirement of the waveform in linear domain based on the used link results.

Parameters
ebnoRequirementEbNo requirement in linear domain

Definition at line 158 of file satellite-wave-form-conf.cc.

References m_ebnoRequirement.

Member Data Documentation

◆ m_codingRate

double ns3::SatWaveform::m_codingRate
private

Coding rate.

Definition at line 171 of file satellite-wave-form-conf.h.

Referenced by Dump(), and GetCNoThreshold().

◆ m_ebnoRequirement

double ns3::SatWaveform::m_ebnoRequirement
private

Eb/No threshold calculated with a certain BLER target from the link results.

Definition at line 197 of file satellite-wave-form-conf.h.

Referenced by Dump(), GetCNoThreshold(), and SetEbNoRequirement().

◆ m_lengthInSymbols

uint32_t ns3::SatWaveform::m_lengthInSymbols
private

Length of the burst in symbols.

Definition at line 186 of file satellite-wave-form-conf.h.

Referenced by Dump(), GetBurstDuration(), GetBurstLengthInSymbols(), GetSpectralEfficiency(), and GetThroughputInBitsPerSecond().

◆ m_modCod

SatEnums::SatModcod_t ns3::SatWaveform::m_modCod
private

MODCOD enum.

Definition at line 176 of file satellite-wave-form-conf.h.

Referenced by GetModCod().

◆ m_modulatedBits

uint32_t ns3::SatWaveform::m_modulatedBits
private

Modulated bits QPSK = 2 8PSK = 3 16QAM = 4.

Definition at line 166 of file satellite-wave-form-conf.h.

Referenced by Dump(), and GetCNoThreshold().

◆ m_payloadBytes

uint32_t ns3::SatWaveform::m_payloadBytes
private

Payload in bytes.

Definition at line 181 of file satellite-wave-form-conf.h.

Referenced by Dump(), GetPayloadInBytes(), GetSpectralEfficiency(), and GetThroughputInBitsPerSecond().

◆ m_preambleLengthInSymbols

uint32_t ns3::SatWaveform::m_preambleLengthInSymbols
private

Length of the preamble in symbols.

Definition at line 191 of file satellite-wave-form-conf.h.

Referenced by GetPreambleDuration(), and GetPreambleLengthInSymbols().

◆ m_waveformId

uint32_t ns3::SatWaveform::m_waveformId
private

Id of this waveform.

Definition at line 158 of file satellite-wave-form-conf.h.

Referenced by GetWaveformId().


The documentation for this class was generated from the following files: