Model Validation¶
Every physics model with published reference data is validated against
that data in CI (tests/test_validation.py). The table below lists the
model, its source, the reference points checked, and the asserted
tolerance. Models without an external reference are checked against
independent hand assemblies of their governing equations or exact
closed-form identities.
| Model | Reference | Checked against | Tolerance |
|---|---|---|---|
| Gaseous attenuation (line-by-line) | ITU-R P.676-13, Annex 1 | γ at 10, 22.235, 60, 94, 118.75, 183.31 GHz, standard surface conditions, cross-checked with ITU-Rpy | 2% |
| Rain specific attenuation k, α | ITU-R P.838-3, Tables 1–4 | k/α at 10, 20, 40, 100 GHz, H and V polarization | 0.1% |
| Sea clutter σ⁰ | NRL model, Gregers-Hansen & Mittal, NRL/MR/5310-12-9346 (2012); fits Nathanson tables within ~2.3 dB | Closed-form spot value (9.3 GHz, SS3, 1°, HH = −43.8 dB); VV > HH at low grazing; monotonicity | 0.05 dB (spot) |
| Ground clutter σ⁰ | Barton constant-γ model, published median γ per terrain | γ·sin ψ identity; terrain ordering | exact |
| CA-CFAR loss | Gregers-Hansen universal curve; Richards ch. 16 | 2.0 dB at N=16, 0.97 dB at N=32 (Pfa = 1e-6); monotonicity in N and Pfa | 0.1 dB |
| Detection probability (Swerling 0) | Marcum Q via noncentral χ² | scipy.stats.ncx2.sf identity; required SNR 13.18 dB at Pd=0.9/Pfa=1e-6 |
exact / 0.15 dB |
| Detection probability (Swerling 1–4) | Gamma-mixture of noncentral χ² | Swerling 1 closed form Pfa^(1/(1+SNR)); Swerling 2 gamma closed form; SW1−SW0 penalty 7–9.5 dB at Pd=0.9 | 1e-6 |
| Albersheim's equation | Richards, Fundamentals of Radar Signal Processing | 13.1 dB (n=1), ~5.0 dB (n=10) at Pd=0.9/Pfa=1e-6; agreement with exact inversion | 0.2–0.3 dB |
| Radar range equation | Independent hand assembly | Full RadarModel vs Pt·G²λ²σ/((4π)³R⁴LkT_sysB); R⁻⁴ and σ scaling laws |
1e-6 dB |
| System noise temperature | T_sys = T_ant + T₀(F−1) | Identity with kTB+NF at 290 K; satcom case T_ant=60 K, NF=1 dB → T_sys=135.1 K | exact |
| Friis cascade | Pozar, Microwave Engineering | 3-stage textbook chain; stage contributions sum to 100% | exact |
| ADC quantization SNR | 6.02·ENOB + 1.76 dB | 12-bit → 74.0 dB | 0.1 dB |
| ADC jitter SNR | −20·log₁₀(2πf·t_j) | 1 ps at 1 GHz → 44.03 dB | 0.02 dB |
| Phase quantization loss | Mailloux ch. 7 | 3 bits → 0.223 dB, Ruze form | 0.01 dB |
| Taper loss | scipy window functions | Computed from actual windows (no fitted curves); Taylor −30 dB → 0.69 dB | exact |
| Search timeline | Beam-packing identity | Frame time = ceil(Ω_search/Ω_beam)·(dwell+overhead), hand-reproduced | 1e-9 |
| Aperture power density | Unit-cell geometry + energy balance | (lambda/2)^2 cell at 10 GHz = 2.2469 cm^2 hand value; f^2 scaling X to Ka = 9x; total/aperture equals per-element/cell | exact |
| Power-aperture product | Barton/Skolnik search relation | A_e = G lambda^2/4pi; required P*A scales as R^4 and 1/t_s | exact |
| Clutter Doppler spread | Skolnik ch. 15 | sigma_c = 2 sigma_v/lambda; 1.16 km/hr at 1.3 GHz -> 2.79 Hz, sigma_omega = 0.0438 rad | 0.01 Hz |
| MTI improvement factor | Richards FRSP Eqs. (5.52)/(5.54) p. 247 | General quadratic form over binomial weights vs both published closed forms; two-pulse 30.2 dB, three-pulse 57.3 dB at sigma_omega = 0.0438 | 5e-8 (rel) / 0.1 dB |
| MTI signal gain | Richards FRSP p. 246 | G = sum w_k^2 by Parseval: 2 (3.0 dB) two-pulse, 6 (7.8 dB) three-pulse | exact |
| Clutter cell RCS | Independent worked case (ARSR-3, L-band ATC) | A_c = R theta_az (c tau/2) with sigma0 = -20 dB -> 3637 m^2 = 35.6 dBsm; required attenuation 47.6 dB | 0.5% / 0.05 dB |
| Range measurement accuracy | Curry, Radar System Performance Modeling 2e, Eq. (8.6) p. 168 | Worked example B=1 MHz, S/N=15 dB -> 18.9 m; 32%/10% of resolution at POMR p. 690 SNR points | 0.1 m / 0.005 |
| Angle measurement accuracy | Curry Eq. (8.8) p. 170; POMR Eq. (18.63) p. 706 | Worked example theta=1 deg, S/N=12 dB -> 1.9 mrad, k_m=1.6; validity floor SNR>13 dB recorded | 0.05 mrad |
| Scan broadening | Curry Eq. (8.9) p. 171 | 1 deg beam at 30 deg scan -> 1.15 deg, sigma 1.9 -> 2.2 mrad | 0.01 deg |
| Velocity accuracy | Curry Eq. (8.13) p. 172 (via Barton & Ward pp. 101-103) | Independent hand assembly lambda/(2 tau sqrt(2 SNR)) | 1e-12 |
| Tracking index and gains | POMR Eqs. (19.47)/(19.54)-(19.56) pp. 731-732; Kalata 1984 | Kalata relation identity; Gamma round-trip; Gamma=1 -> alpha=0.75, beta=0.50; alpha->1, beta->2 asymptotes (Fig. 19-14) | exact / 1e-10 |
| Process noise from maneuver | POMR Eqs. (19.63)/(19.66) p. 734 | Published worked example A=40 m/s^2, T=1 s, sigma_w=120 m -> Gamma_D=0.33, kappa=0.91, sigma_v=36.4 | 0.005 / 0.1 |
| Steady-state covariance (total) | POMR Eq. (19.53) p. 731 | Fixed-gain covariance recursion (Joseph form) iterated to convergence with process noise, sharing no code | 1e-9 / 1e-7 |
| Steady-state covariance (sensor-noise only) | Mahafza Eq. (11.94) ch. 11 | Same recursion with Q=0; canary asserts the incorrect circulating form (VRR>1) is not used | 1e-9 |
| Thermal-reliability coupling | Energy balance + Arrhenius | T_j = T_amb + R_th·(P_DC−P_RF)/N hand value; MTBF monotone in duty cycle | exact |
Documented approximations¶
Where a model is deliberately simpler than the full reference, the limitation is stated in the module docstring:
- Slant-path atmospherics: specific attenuation over min(range, equivalent-height/sin el) with h_O₂ = 6.1 km, h_H₂O = 2.4 km (away-from-line values); the layered integration of P.676 Annex 1 §2 is not implemented.
- Effective rain path: ITU-R P.530 distance factor applied to the
scenario rain rate directly (P.530 defines it for the 0.01%-exceeded
rate). This is a terrestrial model and unsuitable for slant paths:
P.530 assumes the whole path sits in rain, while a satellite link exits
the rain layer within a few kilometers of altitude. On a 28 GHz LEO
link at 8 mm/h the P.530 form over the full slant range predicts tens
of dB where ITU-R P.618 predicts under 1 dB (measured against
opensatcom's P.618 implementation during AEDL t3-001 calibration,
2026-08-11). For earth-space links, take rain from a P.618
implementation and pass it in via
rain_loss_db. - Cross-polarized sea clutter: copolarized NRL value −10 dB (the NRL model has no cross-pol term; spread in the literature is 5–15 dB).
- OS/GO/SO CFAR losses: published homogeneous-clutter deltas on the CA universal curve, not per-type analytic curves.
- Constant-γ ground clutter is frequency-independent by construction; terrain γ values are medians with several dB of real-world spread.