Egalisation de canal
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.
Fonctions
sptr<FiltreGen<cfloat>> égaliseur_rif_création(sptr<FormeOnde> forme_onde, cstring structure, cstring fonction_erreur, entier K, float α, entier N1, entier N2)
Création d'un égaliseur basé sur un ou des filtres RIF ajustés itérativement.
Vecf égaliseur_zfe(const Vecf &h, entier n)
Calcul du filtre inverse par zéro-forçage.
Tabf égaliseur_zfe_matrice(const Vecf &h, entier n)
Matrice associée au filtre \(h\).