comnum.information_rates#

comnum.information_rates(rx, indices, constellation, *, px=None)#

Mutual information and GMI with the least-squares channel gain: consistent at every SNR, unlike the power normalisation of monte_carlo_mi and monte_carlo_gmi.

The model is y = a x + w with x the points at indices of the constellation normalised to unit energy under the priors px (uniform by default), a = Σ y x*/Σ|x|² and σ² = mean|y - a x|²; the rates use the priors.

Parameters:
  • rx (array_like) – the received symbols.

  • indices (array_like) – the transmitted indices.

  • constellation (Constellation) – the alphabet.

  • px (array_like, optional) – prior probabilities of the points.

Returns:

mi, gmi (bits/symbol), ngmi (per bit of information), snr_db (the effective SNR, dB) and entropy (H(X), bits).

Return type:

dict

Raises:

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