égaliseur_zfe

Calcul du filtre inverse par zéro-forçage.

Espace de nom : tsd::telecom

Prototype

Vecf égaliseur_zfe(const Vecf &h, entier n)

Paramètres

hRéponse impulsionnelle du canal,
nNombre de coefficients souhaités pour le filtre inverse.

Retourne

Filtre RIF inverse (coefficients).

Description

Etant donné la réponse du canal \(h\), cette fonction calcule les coefficients d'un filtre RIF \(g\), en essayant d'approximer \[ g\star h = \delta_d \],

\(d\) étant un délais global. Autrement dit, \(g\) est un filtre inverse (au délais près) de \(h\).

Egalisation ZFE

Note
Cette fonction requiert de pouvoir mesurer la réponse du canal (par exemple en envoyant un signal de type impulsionnel côté émetteur).

Avertissement
L'inversion n'est qu'approximative, le filtre inverse exact ayant une réponse impulsionnelle de support non borné.

Avertissement
Si la réponse du canal présente des zéros (ou des magnitudes faibles) dans le domaine fréquentielle, ce type d'égalisation n'est pas recommandée (amplification du bruit).


Exemple

  // h = réponse du canal (supposée connue)
  soit h = Vecf::valeurs({0.02, -0.1, 0.1, 1, -0.05, 0.1, 0.05}),
  // g = filtre d'égalisation
       g = égaliseur_zfe(h, 15);

  // Essai sur un signal NRZ
  soit x0 = randi(2, 10).as<float>() * 2 - 1;
  x0 = (sah(x0, 3) | Vecf::zeros(10)); // NRZ + flush
  soit x1 = convol<float,float>(h, x0),
       x2 = convol<float,float>(g, x1);

Réponses impulsionnelles (canal et du filtre d'égalisation) :

Réponses fréquentielles (canal et du filtre d'égalisation) :

Exemple d'égalisation sur une flux NRZ :

Voir aussi

égaliseur_rif_création(), égaliseur_zfe_matrice()