Skip to main content

phase_pdf

Function phase_pdf 

Source
pub fn phase_pdf(theta: f64, snr_lin: f64) -> f64
Expand description

Probability density of the phase error $\theta = \arg r - \varphi$ of a carrier $r = A e^{j\varphi} + w$ in circular Gaussian noise, at the SNR $\rho = A^{2}/\mathbb{E}|w|^{2}$ (linear) (S. O. Rice, Bell Syst. Tech. J. 27(1), 1948; as eq. (8) of A. U. Ahmed, S. C. Thompson and J. R. Zeidler, “Threshold extending receiver structures for CE-OFDM,” Proc. IEEE MILCOM, 2007):

$$p(\theta) = \frac{e^{-\rho}}{2\pi}\left[1 + \sqrt{4\pi\rho}\,\cos\theta\, e^{\rho\cos^{2}\theta}\,\Phi\left(\sqrt{2\rho}\cos\theta\right)\right], \qquad \theta \in (-\pi, \pi],$$

$\Phi$ the standard normal distribution function. It is uniform at $\rho = 0$ and tends to $\mathcal{N}(0, 1/(2\rho))$ at high SNR; integrated over the decision sectors it gives the error rates of PSK.

§Examples

use comnum_mapping::theory::phase_pdf;
// uniform without signal, Gaussian of variance 1/(2ρ) at high SNR
assert!((phase_pdf(1.0, 0.0) - 1.0 / std::f64::consts::TAU).abs() < 1e-15);
let rho = 400.0;
let gauss = (rho / std::f64::consts::PI).sqrt();
assert!((phase_pdf(0.0, rho) / gauss - 1.0).abs() < 1e-12);