Skip to main content

fresnel_radius_mm

Function fresnel_radius_mm 

Source
pub fn fresnel_radius_mm(near_m: u32, far_m: u32, frequency_hz: u32) -> u32
Expand description

Returns the radius of the first Fresnel ellipsoid at a point on a path, in millimeters.

Recommendation ITU-R P.526-16 treats a path as line of sight, with negligible diffraction, when no obstacle enters the first Fresnel ellipsoid, and starts the diffraction zone where the clearance falls to 60% of its radius. The radius is widest halfway along the path. This is equation (2), sqrt(lambda d1 d2 / (d1 + d2)); equation (3) in practical units rounds its constant to 550 and so reads about half a percent wide.

§Arguments

  • near_m - the distance from one antenna to the point, in meters.
  • far_m - the distance from the point to the other antenna, in meters.
  • frequency_hz - the carrier frequency in hertz.

§Returns

The radius in millimeters, rounded to the nearest, or 0 for a path of no length or a frequency of zero.

§Examples

use pamoja_lora::budget::fresnel_radius_mm;

// Halfway along a 5 km link at 868.1 MHz the radius is 20.78 m, and 60% of it,
// 12.47 m, is the clearance that keeps the path out of the diffraction zone.
let radius = fresnel_radius_mm(2_500, 2_500, 868_100_000);
assert_eq!(radius, 20_777);
assert_eq!(radius * 6 / 10, 12_466);