Imprimer

Filtres linéaires

Les filtres linéaires sont des systèmes linéaires (numériques ou analogiques) qui ont à peu près la même fonction qu'en chimie: laisser passer les parties du signal d'entrée qui nous intéressent, et bloquer tout ce que nous ne voulons pas.  Comme des systèmes linéaires invariantes dans le temps ont les fonctions sinus et cosinus comme fonctions propres, l'effet essentiel d'un filtre linéaire n'est donc rien d'autre que de changer l'amplitude et/ou la phase de chaque fonction propre.   Ce changement d'amplitude et de phase de chaque fonction propre, n'est rien d'autre que la fonction de transfert.  Quand la fonction de transfert n'est pas zéro pour aucune fréquence, le filtre est réversible.  Cela veut dire que l'entropie du signal n'est pas modifié par un filtre qui n'élimine aucun composant totalement. 

Ainsi, à première vue, la seule chose qu'un filtre linéaire peut faire, est de laisser passer certaines fréquences, et d'en arrêter d'autres.  C'est une classe de filtres très importante (les filtres de fréquences), mais il y en a d'autres.   Il y a plusieurs types de filtres pour d'autres applications que la sélection de fréquences.  Même si un filtre linéaire ne peut, en principe, pas modifier l'entropie d'un signal, il peut rendre l'information dans un signal plus évidente à traiter par un processus non-linéaire.

Dans cette contribution, nous allons nous limiter à des filtres qui peuvent être réalisés dans le domaine analogique comme dans le domaine numérique.   Ainsi, nous n'allons pas discuter des filtres adaptatives, les filtres Kalman, les filtres de la plus petite moyenne carrée et bien d'autres, qui ne peuvent être implémentés de façon réaliste en numérique.  Nous ne discuterons pas non plus de traitements non-linéaires.

Filtres de fréquence

Bien que nous insistons qu'il y a bien d'autres filtres que les filtres de fréquence, il n'en est pas moins vrai qu'une application importante des filtres est exactement les filtres de fréquences.

Idéalement, un filtre de fréquences a une fonction de transfert qui est 0 partout où nous ne voulons pas lasser passer les fréquences, et 1 là où nous voulons garder les fréquences.  Les cas classiques sont:

Il y a bien sûr des cas plus compliqués mais on peut toujours les obtenir en combinant plusieurs des filtres que nous venons de nommer.  Dans la pratique, il suffit d'étudier les filtres passe bas, car il y a des techniques de transformation pour transformer un filtre passe bas en passe bande, bloque bande, ou passe-haut.

Le filtre idéal passe bas a la fonction de transfert suivante:

H(ω) = 1 for ω < ω0 = 2 π f0

H(ω) = 0 for ω > ω= 2 π f0

La réponse impulsion de ce filtre est:

h(t) = 2 f0 sin(2 π f0 t) / (2 π f0 t) = ω0 / π  sin(ω0 t) / (ω0 t) 

Cette fonction de transfert a quelques difficultés mathématiques et pratiques d'implémentation.  La plus évidente est bien sur que nous avons besoin d'une convolution du signal d'entrée et qu'il nous faut tout le futur du signal d'entrée pour calculer la valeur instantanée de la sortie.  En d'autres termes, le filtre n'est pas causal.  Une autre difficulté est que ce filtre ne peut pas se réaliser avec des composants analogiques.

C'est pour cette raison qu'il existent plusieurs approximations de ce filtre idéal qui peuvent être réalisées avec des composants analogiques et/ou qui peuvent résoudre le problème de la non-causalité.  Le prix à payer, bien sûr, est que certaines fréquences dans la bande passante souffriront de variations d'amplitude et de phase, et que certaines fréquences en dehors de la bande passante vont cependant avoir une amplitude finie dans le signal de sortie.  Le filtre ne sera donc pas parfaitement sélectif, et va introduire quelques distortions dans le signal transmis.  Cela dit, ces imperfections pourront être limités autant que l'on voudra (sur papier).

Un type de filtre définit en fait toute une famille de filtres, en fonction d'un paramètre d'ordre.  Quand le paramètre d'ordre augmente, la complexité du filtre augmente, mais les imperfections satisferont des limites de plus en plus sévères.  Dans la limite d'ordre infini, en principe, chaque type de filtre convergera d'une certaine façon vers le filtre idéal avec un délai (à ce moment, le filtre devient non-réalisable).

Les familles de filtres de fréquence standard sont en fait limités à un jeu de fonctions de transfert qui sont des fonctions rationnelles avec des poles dans le demi-plan complexe gauche. L'ordre de la fonction rationnelle donne l'ordre du filtre, et il y a un filtre représentatif pour chaque ordre dans chaque famille.  Les familles différentes diffèrent dans leur critère d'optimisation et parfois par une condition mathématique supplémentaire sur la fonction rationnelle.

Les familles les plus connues sont:

  1. Les filtres Butterworth.  Ce sont des filtres pure pole (pas de zéros finis) de telle façon que dans la version passe bas, le filtre est le plus plat possible vers les basses fréquences.  Cela veut dire que pour un ordre donné, le filtre Butterworth est celui qui modifiera le moins les signaux à basse fréquence.
  2. Les filtres Tchebychev. Le filtre Tchebychev utilise une propriété des polynômes Tchebychev.  Le polynôme Tchebychev d'ordre n est ce polynôme d'ordre n, qui, confiné dans le rectangle limité par -1 et 1 pour x et y, monte le plus rapidement en dehors de ce rectangle.  Dans sa version normale, le filtre Tchebychev d'ordre n permet, dans la bande passante, une variation de l'amplitude donnée, et sera le filtre qui coupe le plus rapidement possible.  Il n'y aura pas de filtre pure pole qui limitera les variations d'amplitude à la valeur donnée dans la bande passante, et qui coupera plus rapidement dans la bande bloquée.
  3. Les filtres Tchebychev inverses.  Les filtres Tchebychev inverses ne sont pas des filtres pure pole.  Ils sont aussi basés sur les polynômes Tchebychev, mais en 1/s au lieu de s: la boîte de confinement est maintenant la bande bloquée et le passage rapide se fait vers la bande passante.
  4. Les filtres Elliptiques (aussi appelé filtres Cauer).  Ces filtres sont des "doubles Tchebychev", où il y a un confinement dans la bande passante et dans la bande bloquée.  Dans la limite où le confinement dans la bande passante est zéro, le filtre elliptique devient un filtre Tchebychev inverse ; dans la limite où le confinement dans la bande bloquée est zéro, le filtre elliptique devient un filtre Tchebychev ; et dans la limite où le confinement est zéro aussi bien dans la bande passante que dans la bande bloquante, le filtre elliptique devient le filtre Butterworth.  Le filtre Cauer est basée sur la théorie du filtre Tchebychev inverse, mais au lieu d'utiliser le polynôme Tchebychev, il utilise la fonction rationnelle Tchebychev.

Dans le même esprit, il y a deux types de filtres qui sont des filtres de fréquences, mais où l'importance ne réside pas tellement dans la sélectivité de fréquence, mais dans le bon comportement de laisser passer des impulsions.  Ces filtres sont:

  1. Le filtre Bessel.  Le filtre Bessel est un filtre pure pole tel que, pour un ordre donné, la réponse de phase est la plus linéaire possible, ce qui implique qu'un pulse sera le moins déformé possible en ce qui concerne l'information en temps.
  2. Le filtre Gaussien.  Ce filtre est un filtre pure pole dont la réponse impulsion est la meilleure approximation d'une Gaussienne.  Le filtre Gaussien est le filtre qui peut transmettre le pulse avec la largeur la plus courte (moment de deuxième ordre) pour une bande passante donnée.

Les filtres de détection de signal

Si nous connaissons des propriétés du signal à détecter (bien sûr nous ne connaissons pas parfaitement ce signal, car sinon il ne pourra pas transporter de l'information!) et nous connaissons des propriétés du bruit avec lequel le signal est contaminé, alors il existent des filtres optimisés pour reconnaitre le mieux possible, dans le domaine temporaire, les propriétés inconnues de notre signal.

Le filtre le plus spectaculaire dans ce domaine est sans doute le filtre adapté (matched filter).  Le filtre adapté est spectaculaire parce qu'il peut détecter sans le moindre problème un signal complètement noyé dans le bruit qu'on ne peut plus reconnaître à l'oeil où pourrait se trouver le signal.  Le filtre adapté est souvent utilisé pour impressionner des gens pendant des démonstrations de traitement de signal.  Mais il a aussi une grande utilité technique.  Le filtre adapté peut faire ces prouesses parce que le signal ne transporte en fait très peu d'information. Pour utiliser le filtre adapté, il faut connaître la forme du signal dans le temps.  Les deux choses qu'on ignore du signal sont le moment quand il arrivera, et son amplitude.   Ce sont les deux éléments qui contiendront de l'information.  Nous supposons aussi que nous connaissons la densité spectrale du bruit Sn(f) avec lequel le signal est contaminé.  Le filtre adapté produira le plus grand rapport d'amplitude de sortie sur la valeur RMS de la sortie sans signal.  En d'autres termes, la sortie sera composé de bruit, avec un grand pic quand le signal est découvert.  Plus que la forme du signal est "compliqué", plus que le filtre adapté marche bien.  L'origine du filtre adapté était dans le traitement du signal radar.  L'émetteur d'un radar envoie un pulse d'une forme bien connue.  La réflexion est souvent très faible, et noyé dans le bruit du récepteur.  L'information d'un signal radar réside dans le temps d'arrivée (qui détermine la distance de l'objet) et l'amplitude (qui détermine la taille de l'objet).  La forme du signal est en principe la forme du signal de l'émetteur (il y a quelques distortions).  Maintenant, le filtre adapté a beaucoup d'applications dans la communication numérique.

Le filtre Wiener i est d'une certaine façon semblable au filtre adapté, mais cette fois, nous ne connaissons pas la forme exacte du signal attendu.  Nous ne connaissons que sa description statistique sous la forme de sa densité spectrale.  Donc cette fois, le signal contiendra beaucoup d'information dans les phases des composants fréquentiels.  Comme le signal contient beaucoup plus d'information, le filtre aura des effets beaucoup moins spectaculaires.  Le filtre Wiener est le filtre qui aura le plus grand rapport de l'amplitude de sortie quand le signal est présent, sur la valeur RMS du bruit de sortie quand le signal n'est pas présent.  Nous avons donc besoin de deux éléments: la densité spectrale Ss(f) du signal, et la densité spectrale Sn(f) du bruit.

Quand les deux densités spectrales sont séparés, le filtre Wiener se réduira à un filtre de fréquences.

Réalisations analogiques et numériques

Les familles classiques de filtres mentionnées si-dessus peuvent être réalisés dans le domaine numérique, ou de façon analogique.  Le domaine analogique perd de plus en plus de terrain sur le domaine numérique, car le numérique devient de plus en plus facilement utilisable avec des composants de moins en moins cher et de plus en plus performant, mais il restent quelques domaines où le filtrage analogique doit être considéré, ou est même incontournable.  Ces applications sont essentiellement:

Cela dit, la technologie numérique avance tous les jours, et dans des cas où, sans hésiter, on aurait opté pour une solution analogique il y a 10 ou 15 ans, il faut maintenant considérer la possibilité d'un traitement numérique, surtout s'il peut être fait dans un FPGA relativement peu cher.  Entrop-x peut vous conseiller, aider et concevoir votre solution, analogique ou numérique.

Filtres analogiques.

Les filtres classiques ont été conçus au départ pour une implémentation analogique.  Les filtres analogiques se situent dans deux classes: les filtres passifs, et les filtres actifs.  Les filtres passifs sont constitués seulement d'éléments passifs, comme des résistances, des condensateurs, des inducteurs et des transformateurs.  Les filtres actifs contiennent des amplificateurs (ces jours-ci, des amplificateurs semi-conducteurs).

Les filtres passifs sont plus dur à concevoir et ont plus de contraintes, mais ils ont quelques avantages sur les filtres actifs.  Ils sont essentiellement sans bruit, ils sont toujours stables, et ils peuvent aller à des bandes passantes très élevés.  Ils ne consomment aucune puissance, et ils sont très robustes et fiables. Normalement les filtres passifs ont des fonctions relativement simples, mais si on peut utiliser un filtre passif, cela vaut le cout de le considérer.

Les filtres actifs sont plus faciles à concevoir, car en général on divise le filtre en une succession de sections plus petites et indépendantes.  Les amplificateurs actifs font qu'on peut "oublier" l'impédance de l'étage précédent.  Ainsi, il est plus facile de construire des filtres complexes.  L'ajustement d'un filtre est plus facile avec des filtres actifs, car il est possible d'ajuster section par section.  Les désavantages des filtres actifs viennent du fait qu'il y ait des éléments actifs.  Il faut donc une alimentation en puissance, les amplificateurs sont fragiles et un peu moins fiable que les composants passifs, et ces amplificateurs peuvent avoir un comportement non-idéal comme du bruit, un comportement non-linéaire comme de la saturation....  Cela implique qu'il faut maitriser d'avantage les propriétés du signal d'entrée si on utilise un filtre actif que quand on utilise un filtre passif.  Il peut être opportun de combiner les deux techniques, où le premier étage est un filtre passif et la suite, active.   La section passive peut éliminer des composants indésirés du signal d'entré qui pourraient perturber le bon fonctionnement d'une section active.

Il y a différentes façons de construire des filtres passifs, et il y a différentes façons de construire des filtres actifs.  Il faut un peu d'expertise pour choisir la meilleure technologie en fonction de l'application.

Filtres numériques

Les filtres numériques sont essentiellement des algorithmes.  Il y a donc autant de façons de réaliser un filtre numérique qu'il y ait des algorithmes différents.  Cependant, il y a deux grandes classes d'approches: les filtres dites FIR et les filtres IIR.   Un filtre FIR (Finite Impulse Response) est conceptuellement beaucoup plus simple et plus flexible, mais sont très intensifs en ce qui concerne les ressources de calcul numérique, que les filtres IIR (Infinite Impulse Response).  Les filtres IIR sont conceptuellement beaucoup plus proche des filtres classiques analogiques.  Les filtres IIR ont besoin de moins de ressources ce qui les rend très puissants.  Un filtre IIR peut facilement être intégré dans un petit FPGA qui tourne à 100 MHz ou plus.

Les filtres Wiener et les filtres adaptés, d'un autre coté, ne sont souvent réalisables de façon pratique que par un filtre FIR.

S'il y a besoin d'un filtre classique, et normalement on va pour une approche analogique, il faut aussi considérer la version numérique.  Si un filtre analogique pouvait faire l'affaire, un filtre IIR numérique sera possible aussi.  Si la consommation n'est pas une considération importante, le filtre numérique peut avoir des avantages, comme le fait que son comportement ne va pas glisser dans le temps.  Aussi, il y a la flexibilité que la fonction du filtre peut être modifié juste en changeant la firmware.  Modifier un filtre analogique est bien plus difficile.

Conclusion

Une solution de filtre doit prendre en compte beaucoup d'aspects du problème à résoudre pour décider le type de filtre et la question si on le fait en numérique ou en analogue.  La bonne solution peut aussi être un mélange de différentes techniques.  Par exemple, on peut considérer d'avoir d'abord un filtre passif relativement simple qui protège le reste du circuit contre des composants à l'entrée totalement indésirée, suivi d'un filtre actif plus sophistiqué qui sert aussi comme filtre d'anti-repliement, a un filtre numérique en FPGA qui fait le traitement plus sophistiqué.