pub fn fresnel_radius_mm(near_m: u32, far_m: u32, frequency_hz: u32) -> u32Expand 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);