pub fn differential_phase_tail(psi: f64, esn0_lin: f64) -> f64Expand description
The probability that the phase angle between two vectors of the same SNR esn0_lin
(linear, $E_{s}/N_{0}$ each) perturbed by independent Gaussian noise exceeds psi
in absolute value, $0 \le \psi \le \pi$ (Pawula, Rice & Roberts, 1982, the integral
form for equal SNRs):
$$ P(|\Delta\theta| > \psi) = \frac{\sin \psi}{2 \pi} \int_{-\pi/2}^{\pi/2} \frac{\exp\left[-\gamma_{s} (1 - \cos \psi \cos t)\right]}{1 - \cos \psi \cos t} \, dt, $$
evaluated by Simpson’s rule with 2 000 intervals (the integrand is smooth). It is the symbol error rate of M-DPSK for $\psi = \pi/M$, and $\frac{1}{2} e^{-\gamma_{s}}$ for $\psi = \pi/2$ (DBPSK).
§Examples
use comnum_mapping::theory::differential_phase_tail;
let g = 5.0;
assert!((differential_phase_tail(std::f64::consts::FRAC_PI_2, g) - 0.5 * (-g).exp()).abs() < 1e-9);
assert!((differential_phase_tail(0.0, g) - 1.0).abs() < 1e-9);
assert!(differential_phase_tail(std::f64::consts::PI, g).abs() < 1e-15);