Main Content

Antenna Size Analysis Using ITU-R P.618 Propagation Model


This example shows how to select a parabolic antenna diameter for a particular ground location using the ITU P.618 [1] propagation model function in the Satellite Communications Toolbox. The appropriate antenna size may be quite sensitive to local climate conditions, such that locations with rainy climates will require larger antennas than those with dry climates. The ITU-R P.618 recommendation provides a comprehensive model for attenuation, noise temperature, and depolarization of radio signals through the atmosphere for space-to-ground links in every area of the earth.

This example uses the Satellite Communications Toolbox P.618 propagation model function. The example particularly applies to low earth orbit (LEO) satellites as they traverse a range of elevation angles on each pass.

Obtain Map Data Required by P.618

Download and unpack ITU data maps if the zipped map file is not already present on the MATLAB® path. If the zipped map file already exists on the MATLAB path, just unpack it.

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 = '';

Specify System Parameters

Specify the range of ground antenna diameters and elevation angles to be analyzed. An outage percentage of 1% is chosen, which corresponds to an availability of 99%.

Singapore is chosen for the ground station site as it has a high rain rate when compared to the rest of the world.

Other parameters specified are satellite equivalent isotropic radiated power (EIRP), satellite altitude, satellite transmit frequency, ground station antenna efficiency, ground station radome loss, pointing loss, receiver temperature, implementation loss, required Es/No, and either single or dual polarization.

mgnParams.pctOutage = 1;         % Outage percentage; 
                                 % Availability = (100 - p) percent
mgnParams.gndAntLat = 1.29;      % North latitude, deg
mgnParams.gndAntLon = 103.5;     % East longitude, deg
mgnParams.satEIRP = 27.0;        % Satellite EIRP, dBW
mgnParams.satAlt = 500;          % Satellite altitude, km
mgnParams.satTransmitFreq = 8.2; % Satellite transmit frequency, GHz
mgnParams.antEff = 0.631;        % Ground station antenna efficiency
mgnParams.radomeLoss = 0.74;     % Radome loss, dB  
mgnParams.ptgLoss = 0.2;         % Pointing loss, dB
mgnParams.rcvrTemp = 100;        % Receiver noise temperature, K
mgnParams.symRate = 100e6;       % Symbol rate, sym/sec 
mgnParams.implLoss = 2.5;        % Implementation loss, dB
mgnParams.EsNoRqd = 17.8;        % Required Es/No for BER=1e-5 in 
                                 % AWGN-only channel, dB
                                 % 12.6 for OQPSK, 20.6 for D8PSK, 
                                 % 17.8 dB for 8PSK
gndAntDiam = [3 5 7 9];          % Ground antenna diameters, m
gndAntEl = [5 10 15 20];         % Elevation angles, deg
satAntPol = "Dual";              % Antenna polarization

% Initialize outputs
[marginSinglePol,marginDualPol] = deal(zeros(size(gndAntDiam)));
linkMarginVsElAng = zeros(length(gndAntDiam),length(gndAntEl));
lgndEntries = repmat("",numel(gndAntEl)*2,1); % *2 for clear sky and rain

Run the Analysis

This code section calls HelperLinkMarginVsEl, which calls the MATLAB function p618PropagationLosses for each set of elevation angles and antenna diameters. These results are then plotted to clearly illustrate the link margins available for various configurations and geometries.

Note that both clear sky and with rain results are produced. This plot helps to clearly distinguish the performance under the best and worst case rain conditions for the given location and availability percentage.

for clrSky = ["y" "n"]
  if clrSky == "y"
    clrSkyMkr = "--o";
    lgndSkyStr = "clear sky";
    lgndIdx = 0;
  else  % "n"
    clrSkyMkr = "-o";
    lgndSkyStr = "w/rain";
    lgndIdx = 1;
  numAntEl = length(gndAntEl);
  for idxEl = 1:numAntEl
    for idxDiam = 1:length(gndAntDiam)
      [marginSinglePol(idxDiam),marginDualPol(idxDiam)] = ...
        HelperLinkMarginVsEl(mgnParams,gndAntDiam(idxDiam), ...
    if satAntPol == "Dual"
      margin = marginDualPol;
    elseif satAntPol == "Single"
      margin = marginSinglePol;
    xlabel("Antenna Diameter, m"); ylabel("Link Margin, dB");
    title("Link Margin vs. Antenna Diameter, " + satAntPol + ...
      " Polarization");
    hold on;
    lgndEntries(numAntEl*lgndIdx+idxEl) = ...
      string(gndAntEl(idxEl)) + " deg el " + lgndSkyStr;

    % Accumulate columns into a matrix
    linkMarginVsElAng(:,idxEl) = margin;

legend(lgndEntries(1:end), ...
grid on;
ylim([-20 20]);

For low elevation angles (5 and 10 degrees), it is difficult to close the link with an antenna size of less than 6 meters when rain falls at an annual 1 percent exceedance rate. For clear sky situations (no rain present), a 6 meter antenna would have almost zero margin at 5 degrees elevation. For additional margin, therefore, a diameter larger than 6 meters must be chosen.

Generate Tabular Output

A tabular output of the matrix of link margins from the with rain analysis is computed and displayed. Each row corresponds to the analysis of one antenna diameter. Each column corresponds to the link margins at a given elevation angle for the various antenna diameters.

A possible application for such a table would be finding a polynomial fit for the margins at each elevation angle which are indicated by the columns in the table. Then the antenna diameter at each elevation angle for a particular margin (for example, 3 dB) value could be found. This assists in choosing a minimum elevation angle for a particular choice of antenna diameter.

AntennaDiameter = gndAntDiam';
Margin5Deg = linkMarginVsElAng(:,1);
Margin10Deg = linkMarginVsElAng(:,2);
Margin15Deg = linkMarginVsElAng(:,3);
Margin20Deg = linkMarginVsElAng(:,4);
T = table(AntennaDiameter,Margin5Deg,Margin10Deg,Margin15Deg,Margin20Deg)
T=4×5 table
    AntennaDiameter    Margin5Deg    Margin10Deg    Margin15Deg    Margin20Deg
    _______________    __________    ___________    ___________    ___________

           3            -10.101        -3.6207       0.012843        2.6489   
           5            -5.9608        0.30741         3.8668        6.4839   
           7            -3.4614         2.5567         6.0346        8.6315   
           9            -1.7944         3.9742         7.3766        9.9556   

Further Exploration

This example analyzes the location of Singapore and a satellite in a 500 km altitude circular orbit. Adjust the parameters in the function call to the helper function HelperLinkMarginVsEl and explore different ground station locations with different environmental parameters. These parameters are computed automatically by the MATLAB p618PropagationLosses function, or you can adjust any of the P.618 parameters manually. You can also adjust the altitude of the satellite, the carrier frequency, satellite EIRP, antenna diameters, system losses, receiver temperature, and required Es/No as desired.

The example showcases the dual polarization case. You can change the satAntPol variable to single, rerun the analysis, and compare the results to the dual polarized case.

Another important parameter is the annual exceedance percentage (p), which is the probability that a particular rain rate and atmospheric noise temperature will be exceeded. Annual exceedance percentage relates to availability (a) as

a = (100 - p) %.

For LEO systems, the availability value has a less concrete meaning than for the geostationary orbit (GSO) case, where the geometry between the ground station and satellite is fixed. But as a qualitative measure, setting the availability to 99% is a typical value to use when assessing ground sites with moderate rain rates.

The example could be modified to address the GSO case by using the Satellite Communications Toolbox function aer in conjunction with a satellite scenario to compute the slant range between a ground station and a GSO satellite at a particular longitude. In this case the HelperLinkMarginVsEl function would have to be modified accordingly.


This example uses these helper functions:


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

See Also



Related Topics