filtre_sois (1)
Création d'un filtre RII sous forme d'une chaine de sections du second ordre.
Prototype
sptr<FiltreGen<T>> filtre_sois(const FRat<cfloat> &h, RIIStructure structure=FormeDirecte2)
Paramètres
h | Fonction de transfert, normalement complexe |
structure | lien non trouvé : [group__filtrage-tr_ga13374529e6b52ebc019e56364f77fd26_1gga13374529e6b52ebc019e56364f77fd26aabf3c884b3568e1894f5dd78268877b5]RIIStructure::FormeDirecte1 ou lien non trouvé : [group__filtrage-tr_ga13374529e6b52ebc019e56364f77fd26_1gga13374529e6b52ebc019e56364f77fd26a556620fb6bf72c4fecd862e48c71c163]RIIStructure::FormeDirecte2 (voir notes ci-dessous) |
Retourne
Filtre réel vers réel
Description
La fonction de transfert passée en entrée est factorisée sous la forme d'une cascade de sections du second ordre (plus éventuellement une section du premier ordre si l'ordre est impair), permettant une implémentation efficace d'une filtre RII :
La forme directe 2 est légérement plus efficace que la forme 1. Cependant, si les coefficients du filtre sont amenés à changer en cours de fonctionnement, il vaut mieux utiliser la première forme, car la forme 2 risque de générer des discontinuités.
- Avertissement
- Il est recommandé que la fonction de transfert passée en entrée soit sous la forme pôles / zéros, et non pas sous la forme de la liste des coefficients, car avec cette dernière représentation, la position des pôles et zéros (et donc la réponse fréquentielle) est très instable (très sensible aux erreurs de troncature lors de la quantification des coefficients). Notez que la fonction design_riia() renvoie bien une fonction de transfert sous la forme pôles / zéros.