User Tools

Site Tools


Sidebar

opensand:emulated_satcom_features:physical:attenuation:index

Signal Attenuation

OpenSAND emulates signal attenuation in order to render the emulation more realistic. It combines all types of loss present in a satellite link (e.g path loss, antenna loss, etc.) into a single value, called henceforth attenuation.

The attenuation is emulated for each packet on both up and downlinks, and affects the C/N value of the packet. This value will be compared against the minimum values to decode the packet with Quasi-Error Free (QEF) assumption on reception to emulate losses (refer to the Link Budget page for more information).

Examples for Signal Attenuation

This wiki provides here examples how to exploit the signal attenuation feature for various systems.

OpenSAND Exploitation

Configuration tab with attenuation enabled

By default, Attenuation is disabled in OpenSAND emulations. It can be enabled from the OpenSAND Manager, in the Configuration tab, by ticking the Enable attenuation box.

Once enabled, the attenuation for each link must be configured. In OpenSAND, a different attenuation can be configured for each up-link and down-link between any ST/GW and the satellite. The type of attenuation used for each link is specified by choosing an Attenuation Model.

There are 4 attenuation models to choose from:

  • Ideal
  • File
  • On/Off
  • Triangular

Configuration of attenuation plugins

The type of attenuation model can be selected in the Advanced configuration dialog, accessed by clicking on the Advanced button in the Configuration tab. For each terminal and gateway (e.g. GW0, ST1, etc.), two components will appear: uplink_physical_layer and downlink_physical_layer, which allow to select the attenuation model for the uplink and donwlink respectively. The attenuation model can be selected in the box attenuation_model_type.

The configuration of each model is available in the lower box of the dialog: select the name of the model in the bottom-left box, and the configuration will appear in the bottom-right box (e.g. in the image at the right, the model used is File).

When the attenuation model is changed, Apply must be clicked before the plugin configuration will show in the bottom-left box.
An auxiliary script, modcod2attenuation, is distributed along with the OpenSAND Manager, which allows the user to calculate the necessary attenuation to obtain the desired modcods.

Plugins

Ideal attenuation model

The Ideal attenuation is the most basic model: it applies a constant attenuation over time. This value is defined in the configuration parameters.

The parameters are configured in the plugin configuration file ideal.conf (which can be done from the OpenSAND Manager as explained above).

Parameter name Description Value type Range of values Default value
link Selects which Channel is affected by the configuration inside the Physical Layer block. string up, down -
attenuation_value Constant value of attenuation for the segment link, expressed in dB. double -200, 200 -

On/Off attenuation model

The On/Off attenuation model is based on a periodic variation of the attenuation alternating between two values: zero, and a configurable value. The attenuation profile is depicted in the following figure:

On/Off attenuation model in time

The parameters are configured in the plugin configuration file on_off.conf (which can be done from the OpenSAND Manager as explained above).

Parameter name Description Value type Range of values Default value
link Selects which Channel is affected by the configuration inside the Physical Layer block. string up, down -
period_on Number of periods (duration defined by the granularity attribute acm_period-refresh in global configuration) in which the channel will have an attenuation equal to the amplitude parameter int 1, 10000 10
period_off Number of periods (duration by the granularity attribute acm_period-refresh in global configuration) in which the channel will have an attenuation equal to zero int 1, 10000 10
amplitude The attenuation aplitude (in dB) for the ON period. double -200,200 5

Triangular attenuation model

The Triangular Attenuation model is based on a periodic variation of the attenuation having linear transitions between two values. The first half of the time period, the attenuation increases with a specified slope. In the second half of the period, the attenuation value decreases with the same slope. The attenuation profile is depicted in the following figure:

Triangular Attenuation Model in time

The parameters are configured in the plugin configuration file triangular.conf (which can be done from the OpenSAND Manager as explained above).

Parameter name Description Value type Range of values Default value
link Selects which Channel is affected by the configuration inside the Physical Layer block. string up, down -
period Number of periods (duration defined by the granularity attribute acm_period-refresh in global configuration) that defines the model periodicity. int 1, 200000 10
slope Specifies the variation of the attenuation in each period. double 0, 200 5

File attenuation model

The File Attenuation model is based on values read in a file containing the attenuation evolution over time. The file format is described below:

attenuation.csv
# Format
# time (period) attenuation (dB)
0 0
10 0
24 14
38 0

Between two values of time, the attenuation amplitude is obtained with linear interpolation if the channel is refreshed more than once (depending on the granularity parameter acm_period-refresh).

For example, between times 10 and 24, with a granularity of 1000 ms, we have a constant slope from 0 to 14 dB.

The parameters are configured in the plugin configuration file file.conf (which can be done from the OpenSAND Manager as explained above).

Parameter name Description Value type Range of values Default value
link Selects which Channel is affected by the configuration inside the Physical Layer block. string up, down -
path The path of the attenuation file string - /etc/opensand/plugins/attenuation.csv
loop_mode Whether the file should restart from the beginning after the last value is reached boolean true, false true

Probes

The probes available for each GW and ST are the following. They can be found under the Phy section of the corresponding host.

  • uplink_attenuation: keeps track of the attenuation of packets sent from the host towards the satellite (uplink).
  • downlink_attenuation: keeps track of the attenuation of packets received by the host from the satellite (downlink).

Validation

Since the Attenuation is a sub-system of the Link Budget emulated feature, refer to its page about the validation of this functionality.

OpenSAND Software Design

The attenuation is implemented as an optional feature of the Physical Layer block. Attenuation will affect the packet SNR only when the feature is activated. Inside each of the two channels of the Physical Layer Block, there is a module of Attenuation Model that emulates and provides information about the state of attenuation of the link.

The attenuation models are implemented by AttenuationModel plugins. The main attributes of this class are the following:

  • double attenuation: This value specifies the current attenuation (expressed in dB) that affects the link budget of the segment. Also, this attribute is the most representative of the class. To check this value the method getAttenuation() is available.
  • int granularity: The value of granularity shows the period to update the Channel state, expressed in milliseconds.

The main virtual methods of the AttenuationModel class are:

  • bool init(int granularity, string link): Load the plugins parameters.
  • bool updateAttenuationModel(): Compute the new attenuation value and update the channel attenuation.

These virtual methods are implemented by each of the different plugins.

In OpenSAND only BBFrames (MSG_TYPE_BBFRAME), DVB Bursts (MSG_TYPE_DVB_BURST), Slotted Aloha data and control messagees (MSG_TYPE_SALOHA_DATA and MSG_TYPE_SALOHA_CTRL) and Satellite Access Control (SAC, MSG_TYPE_SAC) are affected by attenuation. However, SAC messages do not use MODCOD (modcod_id=0), and do not behave as the other messages. An error message may be displayed due to this, saying cannot find required Es/N0 from FMT definition ID XX. This remains to be fixed.
opensand/emulated_satcom_features/physical/attenuation/index.txt ยท Last modified: 2020/04/24 15:58 by duboise