Main Content

p618PropagationLosses

Calculate Earth-space propagation losses, cross-polarization discrimination, and sky noise temperature

    Description

    [pl,xpd,tsky] = p618PropagationLosses(p618cfg) returns Earth-space propagation losses pl, cross-polarization discrimination xpd, and sky noise temperature tsky, as defined in the ITU-R P.618-14 recommendation [1]. p618cfg specifies the P.618 configuration parameters.

    This function requires a MAT file with digital maps from International Telecommunication Union (ITU) documents. If it 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.

    Note

    If you are using MATLAB in version R2025b or earlier, refer to the Tips section for instructions on how to run the examples by using ITU-R P.618-13.

    example

    [pl,xpd,tsky] = p618PropagationLosses(p618cfg,Name,Value) specifies additional options using one or more name-value arguments.

    example

    Examples

    collapse all

    This example requires a MAT file with digital maps from ITU documents. If the MAT file is not available on the path, execute the following commands to 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

    Create a default P.618 configuration object.

    cfg = p618Config;

    Specify the time percentage of excess for the rain attenuation per annum as 0.01 and the time percentage of excess for the total attenuation per annum as 0.001.

    cfg.RainAnnualExceedance = 0.01;
    cfg.TotalAnnualExceedance = 0.001;

    Calculate the propagation losses, cross-polarization discrimination, and sky noise temperature.

    [pl,xpd,tsky] = p618PropagationLosses(cfg)
    pl = struct with fields:
        Ag: 0.2278
        Ac: 0.2473
        Ar: 6.7981
        As: 0.2633
        At: 15.2643
    
    
    xpd = 
    32.8876
    
    tsky = 
    266.8455
    

    This example requires a MAT file with digital maps from ITU documents. If the MAT file is not available on the path, execute the following commands to 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

    Create a P.618 configuration object with a signal frequency of 20 GHz.

    cfg = p618Config(Frequency=20e9);

    Specify the surface water vapor density as 2.8gm3, the total columnar content of the cloud liquid water as 1.4 kgm2, and the median value of the wet surface refractivity as 1.2. Set the earth station height as 0.5 km. Calculate the Earth-space propagation losses.

    pl =  p618PropagationLosses(cfg,StationHeight=0.5, ...
                                WaterVaporDensity=2.8, ...
                                TotalColumnarContent=1.4, ...
                                WetSurfaceRefractivity=1.2)
    pl = struct with fields:
        Ag: 0.8097
        Ac: 0.8986
        Ar: 0.8907
        As: 0.1372
        At: 2.4911
    
    

    This example requires a MAT file with digital maps from ITU documents. If the MAT file is not available on the path, execute the following commands to 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

    Create a P.618 configuration object that occupies a signal frequency of 20 GHz.

    cfg = p618Config(Frequency=20e9);

    Calculate the propagation losses in a light rainfall of 1 mm/hr with an earth station height of 0.75 km.

    pl =  p618PropagationLosses(cfg,RainRate=1,StationHeight=0.75)
    pl = struct with fields:
        Ag: 0.7170
        Ac: 0.4763
        Ar: 0.0177
        As: 0.3187
        At: 1.0361
    
    

    Use the ITU-R P.618 propagation loss model to calculate a satellite antenna gain-to-noise temperature ratio (G/T) value as a function of elevation angle. As the elevation angle increases, the noise temperature decreases because the received signal has traversed less atmosphere than at lower elevation angles.

    This example requires a MAT file with digital maps from ITU documents. If the MAT file is not available on the path, execute the following commands to download and untar 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

    Create a vector of elevation angles to analyze, and specify the attributes of a parabolic dish antenna.

    elAngle = 5:5:90; % Elevation angle of antenna boresight pointing, in degrees
    
    % Define circular aperture antenna properties. Assume a parabolic dish.
    antDiam = 5.0;    % Antenna diameter, in meters
    antEff = 0.6;     % Antenna efficiency, in range (0, 1]
    freq = 28e9;      % RF frequency, in Hertz
    tRcvr = 100;      % Noise temperature of receiving system, in Kelvin

    Compute antenna gain at the frequency specified, in decibels relative to an isotropic antenna.

    wavelen = physconst("LightSpeed")/freq;
    antGain = 10*log10(antEff) + 20*log10((pi*antDiam)/wavelen);  % dBi

    Calculate the sky noise temperature tsky at the geographical site over the vector of elevation angles. The location of the geographical site is 40.00 degrees North and -105.23 degrees West.

    numElAngles = length(elAngle);
    tSky = zeros(1,numElAngles);
    for idxElevation = 1:numElAngles
      cfg = p618Config(Frequency=freq, ...                    % Hz
            ElevationAngle=elAngle(idxElevation), ...         % degrees
            Latitude=40.00, ...                               % degrees North
            Longitude=-105.23, ...                            % degrees West
            TotalAnnualExceedance=1.0, ...                    % percentage
            PolarizationTiltAngle=45, ...                     % degrees
            AntennaDiameter=antDiam, ...                      % meters
            AntennaEfficiency=antEff);                       % (0,1]
      [~,~,tSky(idxElevation)] = p618PropagationLosses(cfg);
    end

    Calculate the G/T value in decibels per Kelvin.

    gT = antGain - 10*log10(tRcvr + tSky);  % G/T
    plot(elAngle,gT)
    title("G/T vs. Elevation Angle")
    xlabel("Elevation Angle (degrees)")
    ylabel("G/T (dB/K)")
    grid on

    Figure contains an axes object. The axes object with title G/T vs. Elevation Angle, xlabel Elevation Angle (degrees), ylabel G/T (dB/K) contains an object of type line.

    Input Arguments

    collapse all

    P.618 configuration required for the calculation of the propagation losses, cross-polarization discrimination, and sky noise temperature, specified as a p618Config object.

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

    Example: StationHeight=1.5 specifies the Earth station height as 1.5 km.

    Height of the Earth station above the mean sea level in km, specified as the comma-separated pair consisting of StationHeight and a scalar. The maximum supported value is 10. If the local data is not available as an input, the function uses the digital maps provided in ITU-R P.1511 section 1, Annex 1 [3] to obtain the station height value.

    Data Types: double | single

    Temperature of the Earth surface in kelvin, specified as the comma-separated pair consisting of Temperature and a scalar. This argument represents the surface temperature corresponding to GasAnnualExceedance in an average year, at the specified location. You can derive the value from local measurement or obtain from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Data Types: double | single

    Total pressure at the Earth surface in hPa, specified as the comma-separated pair consisting of Pressure and a scalar. This argument represents the total barometric surface pressure corresponding to GasAnnualExceedance in an average year, at the specified location. You can derive the value from local measurement or obtain from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Data Types: double | single

    Surface water vapor density in g/m3, specified as the comma-separated pair consisting of WaterVaporDensity and a scalar. This argument represents the surface water vapor density corresponding to GasAnnualExceedance in an average year, at the specified location. You can derive the value from local measurement or obtain from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Data Types: double | single

    Integrated water vapor content exceeded for the percentage of GasAnnualExceedance in an average year, from the surface of the Earth at the specified location, specified as the comma-separated pair consisting of IntegratedWaterVaporContent and a scalar. Units are in kg/m2 or mm. You can derive the value from local measurement or obtain from the integrated digital maps provided in Recommendation ITU-R P.2145.

    Data Types: double | single

    Integrated cloud liquid water content exceeded for the percentage of CloudAnnualExceedance in an average year, from the surface of the Earth at the specified location, specified as the comma-separated pair consisting of TotalColumnarContent and a scalar. Units are in kg/m2 or mm. You can derive the value from local measurement or obtain from the integrated digital maps provided in Recommendation ITU-R P.840.

    For release prior to R2026, see the Version History note Argument IntegratedCloudContent replaces TotalColumnarContent.

    Data Types: double | single

    Point rainfall rate at the location for 0.01% of an average year, specified as the comma-separated pair consisting of RainRate and a nonnegative scalar. Units are in mm/hr. If the local data is not available as an input, the function uses the digital maps provided in ITU-R P.837, Annex 1 [5] to obtain the value of the point rainfall rate.

    Data Types: double | single

    Median value of the wet term of the surface refractivity, specified as the comma-separated pair consisting of WetSurfaceRefractivity and a nonnegative scalar. If the local data is not available as an input, the function uses the digital maps provided in ITU-R P.453 section 2.2, Annex 1 [6] to obtain the value of the wet surface refractivity.

    Data Types: double | single

    Atmospheric mean radiating temperature in kelvin, specified as the comma-separated pair consisting of MeanRadiatingTemperature and a nonnegative scalar. If the local data is not available as an input, the function uses an atmospheric mean radiating temperature of 275 K in the computation.

    Data Types: double | single

    Output Arguments

    collapse all

    Earth-space propagation losses information, returned as a structure containing these fields.

    FieldsDescription
    At

    Total atmospheric attenuation (in dB)

    Ag

    Gaseous attenuation (in dB)

    Ac

    Cloud and fog attenuation (in dB)

    Ar

    Rain attenuation (in dB)

    As

    Attenuation due to tropospheric scintillation (in dB)

    Cross-polarization discrimination in (dB) not exceeded for the percentage of the RainAnnualExceedance, returned as a scalar.

    Sky noise temperature (in kelvin) at the ground station antenna, returned as a nonnegative scalar.

    Tips

    For MATLAB version R2025b or earlier, the p618PropagationLosses object uses ITU-R P.618-13 for its calculations instead of ITU-R P.618-14.

    Use this code to download and unzip the MAT files containing digital maps from the ITU-R P.618-13 documents. The code also adds the extracted files to your MATLAB path.

    maps = exist('maps.mat','file');
    p836 = exist('p836.mat','file');
    p837 = exist('p837.mat','file');
    p840 = exist('p840.mat','file');
    matFiles = [maps p836 p837 p840];
    if ~all(matFiles)
        if ~exist('ITURDigitalMaps.tar.gz','file')
            url = 'https://www.mathworks.com/supportfiles/spc/P618/ITURDigitalMaps.tar.gz';
            websave('ITURDigitalMaps.tar.gz',url);
            untar('ITURDigitalMaps.tar.gz');
        else
            untar('ITURDigitalMaps.tar.gz');
        end
        addpath(cd);
    end
    To run the examples, replace the corresponding code fragment that downloads and unzips the latest digital maps from ITU-R P.618-14 in each example with this to ensure compatibility with ITU-R P.618-13.

    References

    [1] International Telecommunication Union, ITU-R Recommendation P.618 (08/2023).

    [2] International Telecommunication Union, ITU-R Recommendation P.676 (08/2022).

    [3] International Telecommunication Union, ITU-R Recommendation P.1511 (08/2024).

    [4] International Telecommunication Union, ITU-R Recommendation P.840 (08/2023).

    [5] International Telecommunication Union, ITU-R Recommendation P.837 (06/2017).

    [6] International Telecommunication Union, ITU-R Recommendation P.453 (08/2019).

    [7] International Telecommunication Union, ITU-R Recommendation P.839 (09/2013).

    [8] International Telecommunication Union, ITU-R Recommendation P.838 (03/2005).

    [9] International Telecommunication Union, ITU-R Recommendation P.2145 (08/2022).

    Extended Capabilities

    expand all

    Version History

    Introduced in R2021a

    expand all