comnum.theory_cm_cutoff_rate#

comnum.theory_cm_cutoff_rate(constellation, snr_db, *, fading='awgn')#

The CM cutoff rate (bits per channel use) with uniform inputs, in closed form (Caire, Taricco & Biglieri 1998, eq. (17)).

Parameters:
  • constellation (Constellation) – the points.

  • snr_db (float | array_like) – E_s/σ² (dB).

  • fading (str) – "awgn" or "rayleigh".

Returns:

the cutoff rate at every SNR.

Return type:

float | numpy.ndarray

Raises:

ValueError – for values that are not real numbers.

Examples

>>> import comnum, math
>>> r0 = comnum.theory_cm_cutoff_rate(comnum.Constellation("psk", 2), 0.0)
>>> round(r0 - (1 - math.log2(1 + math.exp(-1))), 12)
0.0