Rayleigh-Jeans Correction#

At submillimeter wavelengths the Rayleigh-Jeans approximation breaks down, and the full Planck function must be used to relate physical temperature to brightness temperature.

Physical Motivation#

The Rayleigh-Jeans temperature is the equivalent brightness temperature that would produce the same spectral radiance as a blackbody at physical temperature $T$:

$$ T_{RJ}(\nu, T) = \frac{h\nu / k_B}{\exp!\left(\frac{h\nu}{k_B T}\right) - 1} $$

At radio frequencies ($h\nu \ll k_B T$) this reduces to $T$, but at 4.7 THz (upGREAT) the correction is significant — a 300 K load has an effective RJ temperature of only ~290 K.

Low-frequency limit (used when $h\nu / k_B T < 10^{-10}$):

$$ T_{RJ} \approx T - \frac{h\nu}{2 k_B} $$

Implementation: cal-core/src/math/rayleigh_jeans.rsantenna_temperature_rj()

Physics Constants#

Two modes are supported for backward compatibility:

Mode

\(h/k_B\)

Precision

Exact (SI 2019)

\(4.799\,243\,073\,366 \times 10^{-11}\) K/Hz

f64 throughout

KalibrateCompat

\(0.047995 \times 10^{-9}\) K/Hz

f32 truncation to match legacy code

KalibrateCompat is the default (PhysicsConstants::default()). It reproduces the exact numerical behaviour of the legacy kalibrate C++/Fortran code, enabling parity validation.

Implementation: cal-core/src/config.rsPhysicsConstants enum

Sideband-Weighted (Primed) Temperatures#

Heterodyne receivers are sensitive to both sidebands. The effective (“primed”) load temperatures weight each sideband by its gain:

$$ T’{hot} = \frac{g_s x_s \cdot T{RJ}(\nu_{sig}, T_{hot})

  • g_i x_i \cdot T_{RJ}(\nu_{img}, T_{hot})} {g_s x_s + g_i x_i} $$

$$ T’{cold} = \frac{g_s x_s \cdot T{RJ}(\nu_{sig}, T_{cold})

  • g_i x_i \cdot T_{RJ}(\nu_{img}, T_{cold})} {g_s x_s + g_i x_i} $$

where $g_s x_s$ and $g_i x_i$ are the signal and image sideband gain-suppression products (typically both 0.5 for DSB receivers).

Implementation: cal-io/src/resolve.rsresolve_calibration_load()