p618PropagationLosses
Calculate Earth-space propagation losses, cross-polarization discrimination, and sky noise temperature
Since R2021a
Syntax
Description
[
returns Earth-space propagation losses pl
,xpd
,tsky
] = p618PropagationLosses(p618cfg
)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.
Examples
Calculate Propagation Losses, Cross-Polarization Discrimination, and Sky Noise Temperature
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
Calculate Earth-space Propagation Losses Using Name-Value Pair Arguments
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.8, the total columnar content of the cloud liquid water as 1.4 , 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
Calculate Propagation Losses in Light Rainfall
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
Calculate Gain-to-Noise Temperature Versus Elevation Angle
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
Input Arguments
p618cfg
— P.618 configuration
p618Config object
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.
StationHeight
— Height of earth station
nonnegative scalar
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
— Temperature of earth surface
nonnegative scalar
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
Pressure
— Dry air pressure at earth surface
nonnegative scalar
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
WaterVaporDensity
— Surface water vapor density
nonnegative scalar
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
IntegratedWaterVaporContent
— Integrated water vapor content
positive scalar
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
TotalColumnarContent
— Total columnar content of cloud liquid water
nonnegative scalar
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
RainRate
— Point rainfall rate
nonnegative scalar
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
WetSurfaceRefractivity
— Median value of wet term of surface refractivity
nonnegative scalar
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
MeanRadiatingTemperature
— Atmospheric mean radiating temperature
nonnegative scalar
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
pl
— Earth-space propagation losses information
structure
Earth-space propagation losses information, returned as a structure containing these fields.
Fields | Description |
---|---|
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) |
xpd
— Cross-polarization discrimination
scalar
Cross-polarization discrimination in (dB) not exceeded for the percentage of the RainAnnualExceedance, returned as a scalar.
tsky
— Sky noise temperature
nonnegative 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
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Supports only MEX code generation.
Version History
Introduced in R2021a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)