comnum.snr_crb_nmse#

comnum.snr_crb_nmse(snr_db, n_symbols, *, sps=1, real=False)#

The Cramér–Rao bound on the normalised mean squared error of an unbiased SNR estimator from known PSK symbols (Pauluzzi & Beaulieu 2000, eq. (65) in complex AWGN, eq. (67), twice it, in real AWGN).

Parameters:
  • snr_db (float | array_like) – the true SNR (dB).

  • n_symbols (int) – the symbols of a block.

  • sps (int) – independent samples per symbol.

  • real (bool) – real AWGN instead of complex.

Returns:

the bound on E[(ρ̂ - ρ)²] / ρ².

Return type:

float | numpy.ndarray

Raises:

ValueError – for an invalid parameter or input (the message names it).

Examples

>>> import comnum
>>> round(comnum.snr_crb_nmse(30.0, 64), 4)  # tends to 1/64
0.0157