This class implements the content of one individual DVB-RCS2 waveform. More...
#include "satellite-wave-form-conf.h"
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... | |
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.
Definition at line 50 of file satellite-wave-form-conf.h.
ns3::SatWaveform::SatWaveform | ( | ) |
Default constructor for SatWaveform.
Definition at line 51 of file satellite-wave-form-conf.cc.
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.
wfId | Waveform id |
modulatedBits | Modulated bits |
codingRate | Coding rate |
modcod | ModCod |
payloadBytes | Payload in bytes |
lengthInSymbols | Duration in symbols |
preambleLengthInSymbols | Preamble duration in symbols |
Definition at line 64 of file satellite-wave-form-conf.cc.
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.
carrierBandwidthInHz | Total carrier bandwidth including e.g. guard band. |
symbolRateInBaud | Effective symbol rate where guard band and roll-off has been deduced. |
Definition at line 170 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.
Time ns3::SatWaveform::GetBurstDuration | ( | double | symbolRateInBaud | ) | const |
Get/calculate the burst duration of a waveform based on symbol rate.
symbolRateInBaud | Symbol rate |
Definition at line 118 of file satellite-wave-form-conf.cc.
References m_lengthInSymbols.
Referenced by Dump().
uint32_t ns3::SatWaveform::GetBurstLengthInSymbols | ( | ) | const |
Get burst length of the waveform in symbols.
Definition at line 104 of file satellite-wave-form-conf.cc.
References m_lengthInSymbols.
double ns3::SatWaveform::GetCNoThreshold | ( | double | symbolRateInBaud | ) | const |
Get the C/No threshold of the waveform in linear domain.
symbolRateInBaud | Symbol rate in baud |
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 148 of file satellite-wave-form-conf.cc.
References m_codingRate, m_ebnoRequirement, and m_modulatedBits.
Referenced by Dump().
SatEnums::SatModcod_t ns3::SatWaveform::GetModCod | ( | ) | const |
Get MODCOD enum.
Definition at line 90 of file satellite-wave-form-conf.cc.
References m_modCod.
uint32_t ns3::SatWaveform::GetPayloadInBytes | ( | ) | const |
Get payload of a waveform in bytes.
Definition at line 97 of file satellite-wave-form-conf.cc.
References m_payloadBytes.
Time ns3::SatWaveform::GetPreambleDuration | ( | double | symbolRateInBaud | ) | const |
Get/calculate the preamble duration of a waveform based on symbol rate.
symbolRateInBaud | Symbol rate |
Definition at line 125 of file satellite-wave-form-conf.cc.
References m_preambleLengthInSymbols.
uint32_t ns3::SatWaveform::GetPreambleLengthInSymbols | ( | ) | const |
Get preamble length of the waveform in symbols.
Definition at line 111 of file satellite-wave-form-conf.cc.
References m_preambleLengthInSymbols.
double ns3::SatWaveform::GetSpectralEfficiency | ( | double | carrierBandwidthInHz, |
double | symbolRateInBaud | ||
) | const |
Get/calculate the spectral efficiency of a waveform.
carrierBandwidthInHz | Carrier bandwidth in Hz |
symbolRateInBaud | Symbol rate in baud |
Definition at line 132 of file satellite-wave-form-conf.cc.
References ns3::SatConstVariables::BITS_PER_BYTE, m_lengthInSymbols, and m_payloadBytes.
Referenced by Dump().
double ns3::SatWaveform::GetThroughputInBitsPerSecond | ( | double | symbolRateInBaud | ) | const |
Get/calculate the throughput of a waveform based on symbol rate.
symbolRateInBaud | Symbol rate in baud |
Definition at line 140 of file satellite-wave-form-conf.cc.
References ns3::SatConstVariables::BITS_PER_BYTE, m_lengthInSymbols, and m_payloadBytes.
Referenced by Dump().
uint32_t ns3::SatWaveform::GetWaveformId | ( | ) | const |
Get waveform id.
Definition at line 83 of file satellite-wave-form-conf.cc.
References m_waveformId.
void ns3::SatWaveform::SetEbNoRequirement | ( | double | ebnoRequirement | ) |
Set the Eb/No requirement of the waveform in linear domain based on the used link results.
ebnoRequirement | EbNo requirement in linear domain |
Definition at line 163 of file satellite-wave-form-conf.cc.
References m_ebnoRequirement.
|
private |
Coding rate.
Definition at line 174 of file satellite-wave-form-conf.h.
Referenced by Dump(), and GetCNoThreshold().
|
private |
Eb/No threshold calculated with a certain BLER target from the link results.
Definition at line 200 of file satellite-wave-form-conf.h.
Referenced by Dump(), GetCNoThreshold(), and SetEbNoRequirement().
|
private |
Length of the burst in symbols.
Definition at line 189 of file satellite-wave-form-conf.h.
Referenced by Dump(), GetBurstDuration(), GetBurstLengthInSymbols(), GetSpectralEfficiency(), and GetThroughputInBitsPerSecond().
|
private |
|
private |
Modulated bits QPSK = 2 8PSK = 3 16QAM = 4.
Definition at line 169 of file satellite-wave-form-conf.h.
Referenced by Dump(), and GetCNoThreshold().
|
private |
Payload in bytes.
Definition at line 184 of file satellite-wave-form-conf.h.
Referenced by Dump(), GetPayloadInBytes(), GetSpectralEfficiency(), and GetThroughputInBitsPerSecond().
|
private |
Length of the preamble in symbols.
Definition at line 194 of file satellite-wave-form-conf.h.
Referenced by GetPreambleDuration(), and GetPreambleLengthInSymbols().
|
private |
Id of this waveform.
Definition at line 161 of file satellite-wave-form-conf.h.
Referenced by GetWaveformId().