Contenido principal

satelliteLargeScaleChannelConfig

R2026b

Satellite large-scale channel configuration object

Since R2026b

    Description

    The satelliteLargeScaleChannelConfig object sets the configuration parameters for the satelliteLargeScaleChannel function, which calculates non-terrestrial network (NTN) large-scale channel losses. The large-scale channel model accounts for these losses.

    • Path loss, which includes free space path loss, shadow fading, and clutter loss.

    • Outdoor-to-indoor building entry loss

    • Atmospheric absorption

    • Rain and cloud attenuation

    • Scintillation, which includes tropospheric and ionospheric scintillation

    Note

    When you set the EnableAtmosphericLoss property to true, this object requires a MAT file with digital maps from International Telecommunication Union (ITU) documents. If this MAT file is not available on the path, download and uncompress the data file from https://www.mathworks.com/supportfiles/spc/P618/ITURP618v14DigitalMaps.tar.gz to a location on the MATLAB® path.

    Alternatively, the Compute Large‑Scale Satellite Channel Losses with Atmospheric Attenuation example includes commands to download, extract, and add the MAT file to the path automatically.

    Creation

    Description

    cfgChannel = satelliteLargeScaleChannelConfig creates a default satellite large-scale channel configuration object.

    example

    cfgChannel = satelliteLargeScaleChannelConfig(PropertyName=Value) specifies one or more properties using one or more name-value arguments. For example, satelliteLargeScaleChannelConfig(CarrierFrequency=28e9,Environment="Suburban") creates a configuration object with a carrier frequency of 28 GHz and a suburban propagation environment.

    example

    Properties

    expand all

    Signal frequency in Hz, specified as a positive scalar.

    For purposes of computing shadow fading and cluster loss, the object considers frequencies less than or equal to 6 GHz as S-band and frequencies greater than 6 GHz as Ka-band.

    Data Types: double

    Probability of line-of-sight (LOS), specified as a scalar in the range [0, 1] or as empty ([]). When you specify this property as empty, the object calculates the LOS probability based on the ground station (GS) elevation angle and environment, as specified in 3GPP TR 38.811 table 6.6.1-1 [1].

    Data Types: double

    Shadow fading loss in dB, specified as a scalar or as empty ([]). When you specify this property as empty, the object calculates the shadow fading loss based on the GS elevation angle, environment, and LOS status, as specified in 3GPP TR 38.811 section 6.6.2 [1].

    Data Types: double

    Clutter loss in dB, specified as a scalar or as empty ([]). When you specify this property as empty, the object calculates the clutter loss based on the GS elevation angle, environment, and LOS status, as specified in 3GPP TR 38.811 section 6.6.2 [1].

    When the object computes clutter loss using the 3GPP model and the link has direct LOS, the object sets the clutter loss to zero, as specified in 3GPP TR 38.811, section 6.6.2.

    Data Types: double

    Type of propagation environment, specified as one of these options.

    • "Urban" — Urban environment

    • "Suburban" — Suburban environment

    • "Denseurban" — Dense urban environment

    • "Rural" — Rural environment

    This property is used to compute shadow fading and clutter loss, and to determine the probability of LOS.

    Dependencies

    To enable this property, set at least one of these properties to empty.

    • LOSProbability

    • ShadowFadingLoss

    • ClutterLoss

    Data Types: char | string

    Outdoor-to-indoor building entry loss, specified as a numeric or logical 0 (false) or 1 (true).

    • 0 (false) — Use this option when the ground station is outdoors.

    • 1 (true) — Use this option when the ground station is indoors, to include building entry loss in the channel model as defined in 3GPP TR 38.811 section 6.6.3.

    Data Types: double | logical

    Building type, specified as "Traditional" or "Thermally-Efficient". Building type refers to the thermal efficiency of the construction materials, as described in 3GPP TR 38.811 section 6.6.3.

    Dependencies

    To enable this property, set the EnableO2ILoss property to true.

    Data Types: char | string

    Quantile probability of the building entry loss distribution, specified as a scalar in the range (0, 1). For details on the values, refer to Recommendation ITU-R P.2109-2 [2].

    Dependencies

    To enable this property, set the EnableO2ILoss property to true.

    Data Types: double

    Enable atmospheric propagation losses, specified as a numeric or logical 1 (true) or 0 (false). Set this property to true to include atmospheric losses such as gaseous absorption, cloud attenuation, rain attenuation, tropospheric scintillation, and ionospheric scintillation in the channel model.

    When you enable atmospheric losses, this object requires a MAT file with digital maps from International Telecommunication Union (ITU) documents. If this MAT file is not available on the path, download and uncompress the data file from https://www.mathworks.com/supportfiles/spc/P618/ITURP618v14DigitalMaps.tar.gz to a location on the MATLAB® path.

    Alternatively, the Compute Large‑Scale Satellite Channel Losses with Atmospheric Attenuation example includes commands to download, extract, and add the MAT file to the path automatically.

    Note

    This object applies atmospheric losses for only carrier frequencies in the range [1e9, 55e9].

    Data Types: double | logical

    Average annual time percentage of excess, specified as a scalar in the range [0.001, 50]. This property calculates the total propagation losses, excluding ionospheric scintillation, that satisfy the exceedance condition in terms of the percentage of an average year.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Physical diameter of the Earth-station antenna in meters, specified as a positive scalar. This property is used to calculate tropospheric scintillation.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property in the range [1e9, 55e9].

    Data Types: double

    Efficiency of the Earth-station antenna, specified as a positive scalar. This property is used to calculate tropospheric scintillation.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Temperature of the Earth surface in kelvin, specified as a scalar or as empty ([]). This property is used to compute atmospheric absorption. When you specify this property as empty, the object derives the value at specified location obtained from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Total pressure at the Earth surface in hPa, specified as a scalar or as empty ([]). This property is used to compute atmospheric absorption. When you specify this property as empty, the object derives the value at the specified location obtained from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Integrated cloud liquid water content, specified as a scalar or as empty ([]). This property represents the cloud liquid water content integrated along the slant path in kg/m2 or mm. When you specify this property as empty, the object derives the value at the specified location obtained from the integrated digital maps provided in Recommendation ITU-R P.840. This property is used to compute cloud attenuation.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Point rainfall rate at a location for 0.01% of an average year in mm/hr, specified as a nonnegative scalar or as empty ([]). When you specify this property as empty, the object derives the value at the specified location obtained from the integrated digital maps provided in Recommendation ITU-R P.837. This property is used to compute rain attenuation.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    • Set the TotalAnnualExceedance property to a value less than or equal to 5.

    Data Types: double

    Date and time in UTC time zone, specified as a datetime scalar. This property is used to compute ionospheric scintillation loss.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: datetime

    Number of visible sunspots on the surface of the Sun, specified as an integer in the range [0, 250]. Higher values correspond to more ionospheric scintillation.

    Dependencies

    To enable this property, you must satisfy these conditions.

    • Set the EnableAtmosphericLoss property to true.

    • Set the CarrierFrequency property to a value in the range [1e9, 55e9].

    Data Types: double

    Object Functions

    expand all

    satelliteLargeScaleChannelCalculate satellite large-scale channel losses

    Examples

    collapse all

    Create a configuration object with a Ka-band carrier frequency (greater than 6GHz), a dense urban environment, and outdoor-to-indoor building entry loss enabled for a thermally efficient building.

    cfg = satelliteLargeScaleChannelConfig( ...
        CarrierFrequency=20e9, ...
        Environment="Denseurban", ...
        EnableO2ILoss=true, ...
        BuildingType="Thermally-Efficient", ...
        O2ILossProbability=0.3)
    cfg = 
      satelliteLargeScaleChannelConfig with properties:
    
             CarrierFrequency: 2.0000e+10
               LOSProbability: []
             ShadowFadingLoss: []
                  ClutterLoss: []
                  Environment: "Denseurban"
                EnableO2ILoss: 1
                 BuildingType: "Thermally-Efficient"
           O2ILossProbability: 0.3000
        EnableAtmosphericLoss: 0
    
    

    Define a ground station position in geodetic coordinates as [latitude; longitude; altitude], with latitude and longitude in degrees and altitude in meters.

    stationPos = [48.8566; 2.3522; 30]; 

    Define the satellite position in ECEF coordinates, in meters, as [x; y; z].

    satPos = [15600e3; 7540e3; 20200e3];

    Calculate satellite large-scale channel losses.

    channelInfo = satelliteLargeScaleChannel(cfg,stationPos,satPos)
    channelInfo = struct with fields:
         TotalAttenuation: 300.5375
        FreeSpacePathLoss: 204.7211
         ShadowFadingLoss: 18.6850
              ClutterLoss: 33.3000
           HasLineOfSight: 0
                  SigmaSF: 12.1000
    
    

    Generate a signal, apply satellite large-scale channel attenuation, and compare the input and output signal power.

    Create a satellite large-scale channel configuration object for a suburban environment.

    cfg = satelliteLargeScaleChannelConfig( ...
        CarrierFrequency=2e9, ...
        Environment="Suburban");

    Generate a random QPSK-modulated signal.

    m = 4;                                % Modulation order
    data = randi([0 m-1],1000,1);         % Random data symbols
    signalIn = pskmod(data,m,pi/m);       % QPSK-modulate data symbols

    Define the ground station and satellite positions.

    stationPos = [51.5074; -0.1278; 50];     % Station at 50 m altitude
    satPos = [15000e3; 5000e3; 21000e3];     % Satellite in ECEF (meters)

    Apply the satellite large-scale channel losses to the signal.

    [signalOut,channelInfo] = satelliteLargeScaleChannel(cfg,stationPos,satPos,signalIn);

    Compare the input and output signal power.

    inputPower = 10*log10(mean(abs(signalIn).^2));
    outputPower = 10*log10(mean(abs(signalOut).^2));

    Display the values of the comparison.

    fprintf("Input power:  %.2f dBW\n",inputPower)
    Input power:  0.00 dBW
    
    fprintf("Output power: %.2f dBW\n",outputPower)
    Output power: -183.98 dBW
    
    fprintf("Total attenuation: %.2f dB\n",channelInfo.TotalAttenuation)
    Total attenuation: 183.98 dB
    

    Create a configuration object with direct LOS, and enable atmospheric losses. Since the configuration has direct LOS, set clutter loss to zero.

    cfg = satelliteLargeScaleChannelConfig(CarrierFrequency=30e9, ...
                  LOSProbability=1,ShadowFadingLoss=0.2, ...
                  ClutterLoss=0,EnableAtmosphericLoss=1, ...
                  Time=datetime);

    To compute atmospheric losses, the configuration object requires a MAT file with digital maps from International Telecommunication Union (ITU) documents. Check if the MAT file is available on the path, and, if it is not, download and extract it.

    matFile = exist("iturp618v14Maps.mat','file");
    if ~matFile
        if ~exist("ITURP618v14DigitalMaps.tar.gz","file")
            url = "https://www.mathworks.com/supportfiles/spc/P618/ITURP618v14DigitalMaps.tar.gz";
            websave("ITURP618v14DigitalMaps.tar.gz",url)
            untar("ITURP618v14DigitalMaps.tar.gz")
        else
            untar("ITURP618v14DigitalMaps.tar.gz")
        end
        addpath(cd)
    end

    Define a ground station position in geodetic coordinates as [latitude; longitude; altitude], with latitude and longitude in degrees and altitude in meters.

    stationPos = [40; -74; 10];

    Define the satellite position in ECEF coordinates, in meters, as [x; y; z].

    satPos = [15000e3; 5000e3; 21000e3];

    Calculate satellite large-scale channel losses.

    channelInfo = satelliteLargeScaleChannel(cfg,stationPos,satPos)
    channelInfo = struct with fields:
         TotalAttenuation: 219.1725
        FreeSpacePathLoss: 209.5222
         ShadowFadingLoss: 0.2000
              ClutterLoss: 0
           HasLineOfSight: 1
                  SigmaSF: []
    
    

    References

    [1] 3rd Generation Partnership Project (3GPP). Study on New Radio (NR) to Support Non-Terrestrial Networks. 3GPP TR 38.811 Release 15. 3GPP.

    [2] ] International Telecommunication Union (ITU). P Series: Radiowave Propagation; Prediction of Building Entry Loss. ITU-R Recommendation P.2109-2. ITU, August, 2023.

    Extended Capabilities

    expand all

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Version History

    Introduced in R2026b