Filtre adaptatif

filtre dont la pondération est modifiable par un algorithme d'optimisation

Un filtre adaptatif est un système avec un filtre linéaire dont la fonction de transfert est contrôlée par des paramètres variables et un moyen d'ajuster ces paramètres selon un algorithme d'optimisation. En raison de la complexité des algorithmes d'optimisation, presque tous les filtres adaptatifs sont des filtres numériques. Les filtres adaptatifs sont nécessaires pour certaines applications parce que certains paramètres du traitement souhaité (par exemple, l'emplacement des surfaces réfléchissantes dans un espace réverbérant) ne sont pas connus à l'avance ou changent. Le filtre adaptatif en boucle fermée utilise une rétroaction sous la forme d'un signal d'erreur pour affiner sa fonction de transfert.

De manière générale, le processus adaptatif en boucle fermée implique l'utilisation d'une fonction objectif, qui est un critère de performance optimale du filtre, pour alimenter un algorithme, qui détermine comment modifier la fonction de transfert du filtre pour minimiser le coût à l'itération suivante. La fonction de coût la plus courante est le carré moyen du signal d'erreur.

Avec l'augmentation de la puissance des processeurs de signal numérique (DSP), les filtres adaptatifs sont devenus beaucoup plus courants et sont maintenant utilisés couramment dans des appareils tels que les téléphones mobiles et autres appareils de communication, les caméscopes et les appareils photo numériques, ainsi que les équipements de surveillance médicale.

Exemple d'application

modifier

L'enregistrement d'un battement de cœur (par électrocardiographie ou ECG) peut être corrompu par le bruit provenant de l'alimentation électrique (secteur). La fréquence exacte du courant et de ses harmoniques peut varier dans le temps.

Une façon d'éliminer le bruit consiste à filtrer le signal à l'aide d'un filtre coupe-bande à la fréquence du secteur et à ses environs, mais cela pourrait dégrader excessivement la qualité de l'ECG puisque le battement du cœur aurait probablement aussi des composantes de fréquence dans la plage rejetée.

Pour contourner cette perte potentielle d'informations, un filtre adaptatif peut être utilisé. Le filtre adaptatif prendrait en entrée à la fois le signal provenant de la sonde du patient et celui du secteur et serait donc capable de suivre la fréquence réelle du bruit lorsqu'il fluctue et de soustraire ce bruit de l'enregistrement. Une telle technique adaptative permet généralement d'obtenir un filtre avec une plage de réjection plus petite, ce qui signifie, dans ce cas, que la qualité du signal de sortie est plus précise à des fins médicales[1],[2].

Schéma fonctionnel

modifier

L'idée derrière un filtre adaptatif en boucle fermée est qu'un filtre variable est ajusté jusqu'à ce que l'erreur (la différence entre la sortie du filtre et le signal désiré) soit minimisée. Le filtre des moindres carrés (en) (LMS) et le filtre des moindres carrés récursifs (RLS) sont des types de filtres adaptatifs.

 
Filtre adaptatif : k = nombre d'échantillons, x = entrée de référence, X = ensemble des valeurs récentes de x, d = entrée souhaitée, W = ensemble des coefficients du filtre, ε = sortie d'erreur, f = réponse impulsionnelle du filtre, * = convolution, Σ = sommation, case supérieure = filtre linéaire, case inférieure = algorithme d'adaptation.
 
Filtre adaptatif, représentation compacte. k = nombre d'échantillons, x = entrée de référence, d = entrée souhaitée, ε = sortie d'erreur, f = réponse impulsionnelle du filtre, Σ = sommation, boîte=filtre linéaire et algorithme d'adaptation.

Il existe deux signaux d'entrée pour le filtre adaptatif :   et   qui sont parfois appelés respectivement entrée primaire et entrée de référence[3]. L'algorithme d'adaptation tente de filtrer l'entrée de référence en une réplique de l'entrée désirée en minimisant le signal résiduel,  . Lorsque l'adaptation est réussie, la sortie du filtre   est effectivement une estimation du signal souhaité.

  qui comprend le signal désiré plus les interférences non désirées et...
  qui comprend les signaux qui sont corrélés à certaines des interférences indésirables dans  .
k représente le nombre d'échantillons discrets.

Le filtre est contrôlé par un ensemble de L+1 coefficients ou poids.

  représente l'ensemble ou le vecteur des poids, qui contrôlent le filtre au moment de l'échantillon k.
  désigne le  'ième poids au k'ième temps.
  représente le changement des poids qui se produit à la suite des ajustements calculés au temps d'échantillonnage k.
Ces changements seront appliqués après le temps d'échantillon k et avant d'être utilisés au temps d'échantillon k+1.

La sortie est généralement   mais elle pourrait être   ou même les coefficients du filtre[4].

Les signaux d'entrée sont définis comme suit :

 
 
où :
g = le signal souhaité,
g' = un signal qui est corrélé avec le signal désiré g,
u = un signal non désiré qui est ajouté à g, mais qui n'est pas corrélé avec g ou g'
u' = un signal qui est corrélé avec le signal indésirable u, mais pas corrélé avec g ou g',
v = un signal indésirable (typiquement un bruit aléatoire) non corrélé avec g, g', u, u' ou v',
v' = un signal indésirable (typiquement un bruit aléatoire) non corrélé avec g, g', u, u' ou v.

Les signaux de sortie sont définis comme suit :

 
 .
où :
  = la sortie du filtre si l'entrée était seulement g',
  = la sortie du filtre si l'entrée était seulement u',
  = la sortie du filtre si l'entrée était seulement v'.

Filtre FIR à ligne à retard à dérivation

modifier

Si le filtre variable a une structure de filtre à réponse impulsionnelle finie à ligne à retard à dérivation (en anglais : Tapped delay line FIR filter), alors la réponse impulsionnelle est égale aux coefficients du filtre. La sortie du filtre est donnée par

 
 ième désigne le lième poids au kième moment.

Cas idéal

modifier

Dans le cas idéal  . Tous les signaux non désirés dans   sont représentés par  .   consiste entièrement en un signal corrélé avec le signal indésirable dans  .

La sortie du filtre variable dans le cas idéal est la suivante :

  .

Le signal d'erreur ou fonction objectif est la différence entre   et  

 . Le signal désiré gk passe sans être modifié.

Le signal d'erreur   est minimisé au sens du carré moyen lorsque   est minimisé. En d'autres termes,   est la meilleure estimation quadratique moyenne de  . Dans le cas idéal,   et  , et tout ce qui reste après la soustraction est   qui est le signal désiré inchangé avec tous les signaux non désirés éliminés.

Composantes du signal dans l'entrée de référence

modifier

Dans certaines situations, l'entrée de référence   comprend des composantes du signal souhaité. Cela signifie que g' ≠ 0.

Une annulation parfaite du brouillage indésirable n'est pas possible dans ce cas, mais une amélioration du rapport signal/brouillage est possible. La sortie sera

 . Le signal souhaité sera modifié (généralement diminué).

Le rapport signal de sortie/interférence a une formule simple appelée inversion de puissance.

 .
  = rapport signal de sortie/interférence.
  = rapport signal de référence/interférence.
  = fréquence dans le domaine z.

Cette formule signifie que le rapport signal de sortie sur interférence à une fréquence particulière est l'inverse du rapport signal de référence sur interférence[5].

Exemple : Un restaurant de type fast-food dispose d'une fenêtre de type drive-up. Avant de se rendre à la fenêtre, les clients passent leur commande en parlant dans un microphone. Le microphone capte également le bruit du moteur et de l'environnement. Ce microphone fournit le signal primaire. La puissance du signal provenant de la voix du client et la puissance du bruit provenant du moteur sont égales. Il est difficile pour les employés du restaurant de comprendre le client. Pour réduire la quantité d'interférences dans le microphone primaire, un second microphone est placé à l'endroit prévu pour capter les sons du moteur. Il capte également la voix du client. Ce microphone est la source du signal de référence. Dans ce cas, le bruit du moteur est 50 fois plus puissant que la voix du client. Une fois que l'annuleur aura convergé, le rapport signal primaire/interférence sera amélioré de 1:1 à 50:1.

Combineur linéaire adaptatif

modifier
 
Combineur linéaire adaptatif montrant le combineur et le processus d'adaptation. k = nombre d'échantillons, n=indice de la variable d'entrée, x = entrées de référence, d = entrée souhaitée, W = ensemble de coefficients de filtre, ε = sortie d'erreur, Σ = sommation, boîte supérieure=combineur linéaire, boîte inférieure=algorithme d'adaptation.
 
Combineur linéaire adaptatif, représentation compacte. k = nombre d'échantillons, n=indice de la variable d'entrée, x = entrées de référence, d = entrée désirée, ε = sortie d'erreur, Σ = sommation.

Le combineur linéaire adaptatif (ALC) ressemble au filtre FIR à ligne à retard adaptatif, sauf qu'il n'y a pas de relation présumée entre les valeurs X. Si les valeurs X provenaient des sorties, le filtre linéaire adaptatif (ALC) ne pourrait pas être utilisé. Si les valeurs X provenaient des sorties d'une ligne à retard à prises, alors la combinaison de la ligne à retard à prises et de l'ALC comprendrait un filtre adaptatif. Cependant, les valeurs X pourraient être les valeurs d'un réseau de pixels. Ou bien elles peuvent être les sorties de plusieurs lignes à retard. L'ALC trouve son utilité comme formateur de faisceau adaptatif pour des réseaux d'hydrophones ou d'antennes.

 
  désigne le  'ième poids au k'ième temps.

L'algorithme LMS

modifier

Si le filtre variable a une structure FIR à ligne à retard taraudée, alors l'algorithme de mise à jour LMS est particulièrement simple. Typiquement, après chaque échantillon, les coefficients du filtre FIR sont ajustés comme suit[6] :

pour  
 
μ est appelé le facteur de convergence.

L'algorithme LMS n'exige pas que les valeurs X aient une relation particulière ; il peut donc être utilisé pour adapter un combineur linéaire ainsi qu'un filtre FIR. Dans ce cas, la formule de mise à jour s'écrit comme suit :

 

L'algorithme LMS a pour effet, à chaque instant, k, d'apporter un petit changement à chaque poids. La direction de la modification est telle qu'elle diminuerait l'erreur si elle avait été appliquée au moment k. L'ampleur de la modification de chaque poids dépend de μ, de la valeur X associée et de l'erreur au moment k. Les poids apportant la plus grande contribution à la sortie,  , sont modifiés le plus. Si l'erreur est nulle, alors il ne devrait pas y avoir de changement dans les poids. Si la valeur associée de X est nulle, alors la modification du poids ne fait aucune différence, il n'est donc pas modifié.

Convergence

modifier

μ contrôle la vitesse et la qualité de la convergence de l'algorithme vers les coefficients de filtre optimaux. Si μ est trop grand, l'algorithme ne convergera pas. Si μ est trop petit, l'algorithme converge lentement et peut ne pas être en mesure de suivre l'évolution des conditions. Si μ est grand mais pas trop pour empêcher la convergence, l'algorithme atteint rapidement l'état stable mais dépasse continuellement le vecteur de poids optimal. Parfois, μ est rendu grand au début pour une convergence rapide et ensuite diminué pour minimiser le dépassement.

Widrow et Stearns déclarent en 1985 qu'ils n'ont pas connaissance d'une preuve que l'algorithme LMS convergera dans tous les cas[7].

Cependant, sous certaines hypothèses de stationnarité et d'indépendance, on peut montrer que l'algorithme convergera si

 
  = somme de toutes les puissances d'entrée.
  est la valeur RMS de la  'ième entrée.

Dans le cas du filtre à ligne à retard taraudée, chaque entrée a la même valeur efficace car il s'agit simplement des mêmes valeurs retardées. Dans ce cas, la puissance totale est

 
  est la valeur efficace de  , le flux d'entrée[7].

Cela conduit à un algorithme LMS normalisé :

  auquel cas le critère de convergence devient :  .

Filtres adaptatifs non linéaires

modifier

L'objectif des filtres non linéaires est de surmonter les limites des modèles linéaires. Il existe quelques approches couramment utilisées : Volterra LMS, Kernel adaptive filter (en), Spline Adaptive Filter [8] et le filtre adaptatif Urysohn[9],[10]. De nombreux auteurs[11] inclurent également les réseaux neuronaux dans cette liste. L'idée générale derrière le Volterra LMS et le Kernel LMS est de remplacer les échantillons de données par différentes expressions algébriques non linéaires. Pour le Volterra LMS, cette expression est la série de Volterra (en). Dans le filtre adaptatif Spline, le modèle est une cascade de bloc dynamique linéaire et de non-linéarité statique, qui est approximée par des splines. Dans le filtre adaptatif d'Urysohn, les termes linéaires dans un modèle

 

sont remplacés par des fonctions linéaires par morceaux

 

qui sont identifiées à partir d'échantillons de données.

Applications des filtres adaptatifs

modifier

Implémentations de filtre

modifier

Notes et références

modifier
  1. (en) N.V. Thakor et Yi-Sheng Zhu, « Applications of adaptive filtering to ECG analysis : noise cancellation and arhythmia detection », IEEE Transactions on Biomedical Engineering, vol. 38, no 8,‎ , p. 785-794 (ISSN 0018-9294, PMID 1937512, DOI 10.1109/10. 83591, S2CID 11271450).
  2. (en) Bernard Widrow et Samuel D. Stearns, Adaptive Signal Processing, Prentice-Hall, , 1re éd. (ISBN 978-0130040299, lire en ligne  ), p. 329.
  3. Widrow et Stearns 1985, p. 304.
  4. Widrow et Stearns 1985, p. 212.
  5. Widrow et Stearns 1985, p. 313.
  6. Widrow et Stearns 1985, p. 100.
  7. a et b Widrow et Stearns 1985, p. 103.
  8. (en) Danilo Comminiello et José C. Príncipe, Adaptive Learning Methods for Nonlinear System Modeling, Elsevier Inc., (ISBN 978-0-12-812976-0).
  9. (en) M.Poluektov et A.Polar, « Filtre adaptatif d'Urysohn », sur ezcodesample.com, .
  10. (en) « Nonlinear Adaptive Filtering », sur ezcodesample.com.
  11. (en) Weifeng Liu, José C. Principe et Simon Haykin, Kernel Adaptive Filtering : A Comprehensive Introduction, Wiley, (ISBN 978-0-470-44753-6, lire en ligne [PDF]), p. 12-20.

Voir aussi

modifier

Liens externes

modifier