ItuRPropagation.P618 (ITU-R Propagation v0.6.1)

Copy Markdown View Source

ITU-R P.618: Propagation data and prediction methods required for the design of Earth-space telecommunication systems.

Implements the step-by-step procedure for computing rain attenuation along an Earth-space slant path. This is the primary model used for satellite link budget rain margin calculations.

The procedure uses:

  • ITU-R P.839 for rain height
  • ITU-R P.838 for specific rain attenuation coefficients
  • Horizontal and vertical reduction factors to account for the non-uniform spatial distribution of rain

Reference

ITU-R P.618-13: Propagation data and prediction methods required for the design of Earth-space telecommunication systems. https://www.itu.int/rec/R-REC-P.618/en

Summary

Functions

rain_attenuation(frequency_ghz, elevation_deg, latitude_deg, rain_rate_mmh, opts \\ [])

@spec rain_attenuation(float(), float(), float(), float(), keyword()) :: float()

Compute rain attenuation along an Earth-space slant path.

Implements the step-by-step method from ITU-R P.618-13, Section 2.2.1.1. This computes the rain attenuation exceeded for 0.01% of an average year, then scales to the requested time percentage.

Parameters

  • frequency_ghz - Frequency in GHz
  • elevation_deg - Elevation angle in degrees (> 0)
  • latitude_deg - Earth station latitude in degrees
  • rain_rate_mmh - Rain rate exceeded for 0.01% of an average year (mm/h). If computing for a different time percentage, provide the 0.01% value and use the :time_percentage option.
  • opts - Options keyword list:
    • :station_altitude_km - Station altitude above MSL in km (default: 0.0)
    • :polarization - :horizontal, :vertical, or :circular (default: :circular)
    • :time_percentage - Time percentage for which attenuation is exceeded (default: 0.01, valid range: 0.001 to 5.0)
    • :longitude_deg - Longitude in degrees, passed to P.839 (default: 0.0)

Returns

Rain attenuation in dB exceeded for the given time percentage.

Examples

iex> a_rain = ItuRPropagation.P618.rain_attenuation(12.0, 30.0, 40.0, 25.0)
iex> a_rain > 1.0
true

iex> a_rain = ItuRPropagation.P618.rain_attenuation(1.66, 30.0, 40.0, 10.0)
iex> a_rain < 0.5
true

scintillation_attenuation(frequency_ghz, elevation_deg, p, opts \\ [])

@spec scintillation_attenuation(float(), float(), float(), keyword()) :: float()

Compute tropospheric scintillation attenuation.

Implements the step-by-step method from ITU-R P.618-13, Section 2.4. Calculates the scintillation fade depth exceeded for a given time percentage.

Parameters

  • frequency_ghz - Frequency in GHz (up to 20 GHz for the model validity, but often used higher)
  • elevation_deg - Elevation angle in degrees (> 5.0)
  • p - Time percentage (0.01 to 50)
  • opts - Options:
    • :antenna_diameter_m - Antenna diameter in meters (default: 1.2)
    • :antenna_efficiency - Antenna efficiency (default: 0.5)
    • :temperature_c - Average surface temperature in degrees Celsius (default: 15.0)
    • :relative_humidity - Average relative humidity in % (default: 75.0)
    • :n_wet - Wet term of surface refractivity (if known)

Returns

Scintillation fade depth in dB.