StochasticChannelModel.ned
NED File src/simu5g/stack/phy/channelmodel/StochasticChannelModel.ned
| Name | Type | Description |
|---|---|---|
| StochasticChannelModel | simple module |
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. |
Source code
// // Simu5G // // Copyright (C) 2019-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa) // Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa) // // This file is part of a software released under the license included in file // "license.pdf". Please read LICENSE and README files before using it. // The above files and the present reference are part of the software itself, // and cannot be removed from it. // package simu5g.stack.phy.channelmodel; // // 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); }