Main Content

p618PropagationLosses

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

Since R2021a

    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 recommendation [1]. p618cfg specifies the P.618 configuration parameters.

    This function requires MAT-files with digital maps from International Telecommunication Union (ITU) documents. If they are not available on the path, download and uncompress the data files from https://www.mathworks.com/supportfiles/spc/P618/ITURDigitalMaps.tar.gz to a location on the MATLAB path.

    example

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

    example

    Examples

    collapse all

    This example requires MAT-files with digital maps from ITU documents. If they are not available on the path, execute the following commands to download and unzip the MAT-files.

    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

    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.2269
        Ac: 0.4552
        Ar: 6.7981
        As: 0.2633
        At: 15.6091
    
    
    xpd = 32.8876
    
    tsky = 267.4689
    

    This example requires MAT-files with digital maps from ITU documents. If they are not available on the path, execute the following commands to download and untar the MAT-files.

    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

    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.8649
        Ac: 1.0987
        Ar: 0.8907
        As: 0.1372
        At: 2.8590
    
    

    This example requires MAT-files with digital maps from ITU documents. If they are not available on the path, execute the following commands to download and unzip the MAT-files.

    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

    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.7996
        Ac: 0.8793
        Ar: 0.0177
        As: 0.3187
        At: 1.7514
    
    

    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 MAT files with digital maps from ITU documents. If the MAT files are not available on the MATLAB path, you must download and unzip them.

    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

    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

    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 nonnegative scalar. The maximum supported value is 100. 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 nonnegative scalar. If the local data is not available as an input, the function uses the map of the mean annual surface temperature provided in ITU-R P.1510 section 1, Annex 1 [4] to obtain the temperature value.

    Data Types: double | single

    Dry air pressure at the earth surface in hPa, specified as the comma-separated pair consisting of 'Pressure' and a nonnegative scalar. If the local data is not available as an input, the function uses the mean annual global reference atmosphere provided in ITU-R P.835 section 1.1, Annex 1 [5] to obtain the air pressure value.

    Data Types: double | single

    Surface water vapor density in g/m3, specified as the comma-separated pair consisting of 'WaterVaporDensity' 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.836 section 1, Annex 1 [6] to estimate the value of the water vapor density.

    Data Types: double | single

    Integrated water vapor content exceeded for the percentage of GasAnnualExceedance in an average year, specified as the comma-separated pair consisting of 'IntegratedWaterVaporContent' and a positive scalar. Units are in kg/m2 or mm. If the local data is not available as an input, the function uses the digital maps provided in ITU-R P.836 section 1, Annex 2 [6] to obtain the value of the integrated water vapor content.

    Data Types: double | single

    Total columnar content of the cloud liquid water exceeded for the percentage of CloudAnnualExceedance in an average year, specified as the comma-separated pair consisting of 'TotalColumnarContent' and a nonnegative scalar. Units are in kg/m2 or mm. If the local data is not available as an input, the function uses the digital maps provided in ITU-R P.840 section 3.1, Annex 1 [7] to obtain the value of the total columnar content.

    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 [8] 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 [9] 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.

    References

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

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

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

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

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

    [6] International Telecommunication Union, ITU-R Recommendation P.836 (12/2017).

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

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

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

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

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

    Extended Capabilities

    Version History

    Introduced in R2021a