Channel equalization

L'égalisation de canal a pour but de corriger les distortions sur le signal reçu, qui sont supposées comme étant le résultat d'une convolution par filtre de réponse inconnue mais supposée constante (ou variant très lentement).

Dans la figure suivante, le canal est modélisé par un filtre linéaire H(z) et un bruit blanc additif gaussien :

Plusieurs techniques d'égalisation sont possibles, de la plus simple (zero forcing) à la plus complexe (démodulation MLSE). Les techniques disponibles pour l'instant dans la librairie sont les suivantes :

  • Zéro forcing (calcul d'un filtre FIR inverse), via la fonction equalizer_zfe
  • LMS (Least Mean Square) et CMA (Constant Modulus Algorithm), via les fonctions equalizer_init et equalizer_process.

Functions

sptr<FilterGen<cfloat>> equalizer_fir_new(sptr<WaveForm> wf, const string &structure, cstring errf, float osf, float gain, int N1, int N2)
Creation of a FIR equalizer.

Vecf equalizer_zfe(const Vecf &h, int n)
Compute an inverse filter by zero-forcing.