StochasticChannelModel

Package: simu5g.stack.phy.channelmodel

simple module StochasticChannelModel

The full PHY link model: everything between a transmitted air frame and the decision on whether it was received. The channel impairments are modeled statistically – drawn from the distributions of a 3GPP propagation study, rather than computed from the geometry of an actual environment – which is what sets this model apart from IdealChannelModel, where there are no impairments at all, only a configured packet error rate.

It covers:

  • path loss per deployment scenario, LOS/NLOS state and log-normal shadowing, with the formulas of the 3GPP propagation study selected by pathLossType (TR 36.814, TR 36.873 or TR 38.901);

  • multipath fading, Jakes or Rayleigh;

  • the antenna pattern attenuation and the link budget (antenna gains, cable loss, noise figures, thermal noise);

  • interference from other cells: downlink, uplink, external cells and background cells;

  • the assembly of all of the above into a per-band SINR, and the mapping of that SINR onto a block error probability that decides reception.

Only the path loss, LOS probability, shadowing and angular attenuation come from the selected propagation study; everything else is the same whichever study is selected. The Tr36873ChannelModel and Tr38901ChannelModel presets differ from this type only in their pathLossType default.

simu5g.stack.phy.channelmodel.StochasticChannelModelStochasticChannelModelsimple

Inheritance diagram

Known subclasses

Name

Type

Description

D2dChannelModel

simple module

D2D-capable channel model: StochasticChannelModel plus the device-to-device channel math (RSRP/SINR, D2D interference, D2D reception decision). It is the channel model of the D2D NICs on all propagation studies; the pathLossType parameter (inherited from StochasticChannelModel) selects TR 36.814, 36.873 or 38.901.

Tr36873ChannelModel

simple module

StochasticChannelModel preset with the propagation formulas of 3GPP TR 36.873, “Study on 3D channel model for LTE”, v12.7.0, December 2017. It differs from its base type only in the pathLossType default; there is no C++ class of its own behind the name. Note that the study supplies the path loss, LOS probability, shadowing and angular attenuation only; the rest of the link model is the same for every propagation study.

Tr38901ChannelModel

simple module

StochasticChannelModel preset with the propagation formulas of 3GPP TR 38.901, “Study on channel model for frequencies from 0.5 to 100 GHz”, v16.1.0, December 2019. It differs from its base type only in the pathLossType default; there is no C++ class of its own behind the name. Note that the study supplies the path loss, LOS probability, shadowing and angular attenuation only; the rest of the link model is the same for every propagation study.

Extends

Name

Type

Description

ChannelModelBase

simple module

This is the base module for developing more realistic models of the radio channel. It primarily provides the initialization of parameters such as the reference to the Component Carrier (CC) and its associated parameters related to the channel model itself.

Parameters

Name

Type

Default value

Description

binderModule

string

“binder”

cellInfoModule

string

“^.^.cellInfo”

Optional

componentCarrierModule

string

“carrierAggregation.componentCarrier[0]”

Component carrier for this channel model

pathLossType

string

“Tr36814”

Which 3GPP propagation study supplies the path loss formulas

shadowing

bool

true

Enable/disable shadowing

scenario

string

“URBAN_MACROCELL”

Path loss scenario, in ITU terminology

nodebHeight

double

25m

eNodeB height

buildingHeight

double

20m

Building height

insideBuilding

bool

false

Determines if the UE is inside a building

useBuildingPenetrationHighLossModel

bool

false

Enable the high-loss building penetration model (table 7.4.3-2 in TR 38.901); only used with pathLossType=”Tr38901”

streetWidth

double

20m

ueHeight

double

1.5m

tolerateMaxDistViolation

bool

false

useTorus

bool

false

correlationDistance

double

50m

targetBler

double

0.01

Target BLER used to compute feedback

harqReduction

double

0.2

Factor the error probability is multiplied by for each HARQ retransmission

antennaGainUe

double

0dBi

Antenna gain of the UE

antennGainEnB

double

18dBi

Antenna gain of the eNodeB

antennGainMicro

double

5dBi

Antenna gain of the micro node

thermalNoise

double

-104.5dBm

Thermal noise for 10 MHz of bandwidth

ueNoiseFigure

double

7dBm

UE noise figure

bsNoiseFigure

double

5dBm

eNodeB noise figure

cableLoss

double

2dB

Cable loss

dynamicLos

bool

false

Whether LOS/NLOS is drawn per link from the scenario’s LOS probability; when false, it is fixed to fixedLos

fixedLos

bool

false

LOS state of every link when dynamicLos is false: true = LOS, false = NLOS

fading

bool

true

Enable/disable fading

fadingType

string

“JAKES”

Fading type (JAKES or RAYLEIGH)

numFadingPaths

int

6

If Jakes fading, this parameter specifies the number of paths (tap channel)

delayRms

double

363ns

bgCellInterference

bool

true

Whether interference from background cells is included in the SINR, in both UL and DL

extCellInterference

bool

true

Whether interference from external cells is included in the DL SINR (TODO possibly obsolete)

downlinkInterference

bool

false

Whether interference from other base stations is included in the DL SINR

uplinkInterference

bool

false

Whether interference from the UEs of other cells is included in the UL SINR

enableExtCellLos

bool

true

collectSinrStatistics

bool

true

Collection of SINR statistics can be disabled because it might be quite time-consuming

Properties

Name

Value

Description

class

StochasticChannelModel

display

i=block/classifier2

Signals

Name

Type

Unit

Description

measuredSinrDl

measuredSinrUl

rcvdSinrDl

Statistics

rcvdSinrUl

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

measuredSinrDl

SINR measured at feedback computation, DL

measuredSinrDl

mean,vector

dB

measuredSinrUl

SINR measured at feedback computation, UL

measuredSinrUl

mean,vector

dB

rcvdSinrDl

SINR measured at packet reception, DL

rcvdSinrDl

mean,vector

dB

rcvdSinrUl

SINR measured at packet reception, UL

rcvdSinrUl

mean,vector

dB

Source code

//
// The full PHY link model: everything between a transmitted air frame and the
// decision on whether it was received. The channel impairments are modeled
// statistically -- drawn from the distributions of a 3GPP propagation study,
// rather than computed from the geometry of an actual environment -- which is
// what sets this model apart from ~IdealChannelModel, where there are no
// impairments at all, only a configured packet error rate.
//
// It covers:
// - path loss per deployment scenario, LOS/NLOS state and log-normal shadowing,
//   with the formulas of the 3GPP propagation study selected by pathLossType
//   (TR 36.814, TR 36.873 or TR 38.901);
// - multipath fading, Jakes or Rayleigh;
// - the antenna pattern attenuation and the link budget (antenna gains, cable
//   loss, noise figures, thermal noise);
// - interference from other cells: downlink, uplink, external cells and
//   background cells;
// - the assembly of all of the above into a per-band SINR, and the mapping of
//   that SINR onto a block error probability that decides reception.
//
// Only the path loss, LOS probability, shadowing and angular attenuation come
// from the selected propagation study; everything else is the same whichever
// study is selected. The ~Tr36873ChannelModel and ~Tr38901ChannelModel presets
// differ from this type only in their pathLossType default.
//
simple StochasticChannelModel extends ChannelModelBase
{
    parameters:
        @class("StochasticChannelModel");

        string pathLossType @enum("Tr36814","Tr36873","Tr38901") = default("Tr36814"); // Which 3GPP propagation study supplies the path loss formulas

        // Enable/disable shadowing
        bool shadowing = default(true);

        // Path loss scenario, in ITU terminology
        string scenario @enum(INDOOR_HOTSPOT,URBAN_MICROCELL,URBAN_MACROCELL,RURAL_MACROCELL,SUBURBAN_MACROCELL,UNKNOWN_SCENARIO) = default("URBAN_MACROCELL");

        // eNodeB height
        double nodebHeight @unit(m) = default(25m);
        // Building height
        double buildingHeight @unit(m) = default(20m);
        // Determines if the UE is inside a building
        bool insideBuilding = default(false);
        // Enable the high-loss building penetration model (table 7.4.3-2 in TR 38.901); only used with pathLossType="Tr38901"
        bool useBuildingPenetrationHighLossModel = default(false);

        double streetWidth @unit(m) = default(20m);
        double ueHeight @unit(m) = default(1.5m);
        bool tolerateMaxDistViolation = default(false);
        bool useTorus = default(false);

        double correlationDistance @unit(m) = default(50m);

        // Target BLER used to compute feedback
        double targetBler = default(0.01);
        // Factor the error probability is multiplied by for each HARQ retransmission
        double harqReduction = default(0.2);

        // Antenna gain of the UE
        double antennaGainUe @unit(dBi) = default(0dBi);
        // Antenna gain of the eNodeB
        double antennGainEnB @unit(dBi) = default(18dBi);
        // Antenna gain of the micro node
        double antennGainMicro @unit(dBi) = default(5dBi);
        // Thermal noise for 10 MHz of bandwidth
        double thermalNoise @unit(dBm) = default(-104.5dBm);
        // UE noise figure
        double ueNoiseFigure @unit(dBm) = default(7dBm);
        // eNodeB noise figure
        double bsNoiseFigure @unit(dBm) = default(5dBm);
        // Cable loss
        double cableLoss @unit(dB) = default(2dB);

        // Whether LOS/NLOS is drawn per link from the scenario's LOS probability; when false, it is fixed to fixedLos
        bool dynamicLos = default(false);
        // LOS state of every link when dynamicLos is false: true = LOS, false = NLOS
        bool fixedLos = default(false);
        // Enable/disable fading
        bool fading = default(true);
        // Fading type (JAKES or RAYLEIGH)
        string fadingType @enum(RAYLEIGH,JAKES) = default("JAKES");
        // If Jakes fading, this parameter specifies the number of paths (tap channel)
        int numFadingPaths = default(6);

        double delayRms @unit(s) = default(363ns);

        // Whether interference from background cells is included in the SINR, in both UL and DL
        bool bgCellInterference = default(true);
        // Whether interference from external cells is included in the DL SINR (TODO possibly obsolete)
        bool extCellInterference = default(true);
        // Whether interference from other base stations is included in the DL SINR
        bool downlinkInterference = default(false);
        // Whether interference from the UEs of other cells is included in the UL SINR
        bool uplinkInterference = default(false);

        bool enableExtCellLos = default(true);

        // Collection of SINR statistics can be disabled because it might be quite time-consuming
        bool collectSinrStatistics = default(true);

        // Statistics
        @signal[rcvdSinrDl];
        @statistic[rcvdSinrDl](title="SINR measured at packet reception, DL"; unit="dB"; source="rcvdSinrDl"; record=mean,vector);
        @signal[rcvdSinrUl];
        @statistic[rcvdSinrUl](title="SINR measured at packet reception, UL"; unit="dB"; source="rcvdSinrUl"; record=mean,vector);

        @signal[measuredSinrDl];
        @statistic[measuredSinrDl](title="SINR measured at feedback computation, DL"; unit="dB"; source="measuredSinrDl"; record=mean,vector);
        @signal[measuredSinrUl];
        @statistic[measuredSinrUl](title="SINR measured at feedback computation, UL"; unit="dB"; source="measuredSinrUl"; record=mean,vector);
}

File: src/simu5g/stack/phy/channelmodel/StochasticChannelModel.ned