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... | |
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.
Here is the call graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().