Filtre adaptatif

Page d’aide sur l’homonymie

Pour les articles homonymes, voir filtre.

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

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

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.

Un schéma fonctionnel d'un filtre adaptatif avec un bloc séparé pour le processus d'adaptation.
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.
Un schéma fonctionnel compact d'un filtre adaptatif sans bloc séparé pour le processus 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 : d k {\displaystyle d_{k}} et x k {\displaystyle x_{k}} 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, ϵ k {\displaystyle \epsilon _{k}} . Lorsque l'adaptation est réussie, la sortie du filtre y k {\displaystyle y_{k}} est effectivement une estimation du signal souhaité.

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

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

W k = [ w 0 k , w 1 k , . . . , w L k ] T {\displaystyle \mathbf {W} _{k}=\left[w_{0k},\,w_{1k},\,...,\,w_{Lk}\right]^{T}} représente l'ensemble ou le vecteur des poids, qui contrôlent le filtre au moment de l'échantillon k.
w l k {\displaystyle w_{lk}} désigne le l {\displaystyle l} 'ième poids au k'ième temps.
Δ W k {\displaystyle \mathbf {\Delta W} _{k}} 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 ϵ k {\displaystyle \epsilon _{k}} mais elle pourrait être y k {\displaystyle y_{k}} ou même les coefficients du filtre[4].

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

d k = g k + u k + v k {\displaystyle d_{k}=g_{k}+u_{k}+v_{k}}
x k = g k + u k + v k {\displaystyle x_{k}=g_{k}^{'}+u_{k}^{'}+v_{k}^{'}}
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 :

y k = g ^ k + u ^ k + v ^ k {\displaystyle y_{k}={\hat {g}}_{k}+{\hat {u}}_{k}+{\hat {v}}_{k}}
ϵ k = d k y k {\displaystyle \epsilon _{k}=d_{k}-y_{k}} .
où :
g ^ {\displaystyle {\hat {g}}} = la sortie du filtre si l'entrée était seulement g',
u ^ {\displaystyle {\hat {u}}} = la sortie du filtre si l'entrée était seulement u',
v ^ {\displaystyle {\hat {v}}} = la sortie du filtre si l'entrée était seulement v'.

Filtre FIR à ligne à retard à dérivation

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

y k = l = 0 L w l k   x ( k l ) = g ^ k + u ^ k + v ^ k {\displaystyle y_{k}=\sum _{l=0}^{L}w_{lk}\ x_{(k-l)}={\hat {g}}_{k}+{\hat {u}}_{k}+{\hat {v}}_{k}}
w l k {\displaystyle w_{lk}} ième désigne le lième poids au kième moment.

Cas idéal

Dans le cas idéal v 0 , v 0 , g 0 {\displaystyle v\equiv 0,v'\equiv 0,g'\equiv 0} . Tous les signaux non désirés dans d k {\displaystyle d_{k}} sont représentés par u k {\displaystyle u_{k}} .   x k {\displaystyle \ x_{k}} consiste entièrement en un signal corrélé avec le signal indésirable dans u k {\displaystyle u_{k}} .

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

y k = u ^ k {\displaystyle y_{k}={\hat {u}}_{k}} .

Le signal d'erreur ou fonction objectif est la différence entre d k {\displaystyle d_{k}} et y k {\displaystyle y_{k}}

ϵ k = d k y k = g k + u k u ^ k {\displaystyle \epsilon _{k}=d_{k}-y_{k}=g_{k}+u_{k}-{\hat {u}}_{k}} . Le signal désiré gk passe sans être modifié.

Le signal d'erreur ϵ k {\displaystyle \epsilon _{k}} est minimisé au sens du carré moyen lorsque [ u k u ^ k ] {\displaystyle [u_{k}-{\hat {u}}_{k}]} est minimisé. En d'autres termes, u ^ k {\displaystyle {\hat {u}}_{k}} est la meilleure estimation quadratique moyenne de u k {\displaystyle u_{k}} . Dans le cas idéal, u k = u ^ k {\displaystyle u_{k}={\hat {u}}_{k}} et ϵ k = g k {\displaystyle \epsilon _{k}=g_{k}} , et tout ce qui reste après la soustraction est g {\displaystyle g} 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

Dans certaines situations, l'entrée de référence x k {\displaystyle x_{k}} 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

ϵ k = d k y k = g k g ^ k + u k u ^ k {\displaystyle \epsilon _{k}=d_{k}-y_{k}=g_{k}-{\hat {g}}_{k}+u_{k}-{\hat {u}}_{k}} . 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.

ρ o u t ( z ) = 1 ρ r e f ( z ) {\displaystyle \rho _{\mathsf {out}}(z)={\frac {1}{\rho _{\mathsf {ref}}(z)}}} .
ρ o u t ( z )   {\displaystyle \rho _{\mathsf {out}}(z)\ } = rapport signal de sortie/interférence.
ρ r e f ( z )   {\displaystyle \rho _{\mathsf {ref}}(z)\ } = rapport signal de référence/interférence.
z   {\displaystyle z\ } = 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

Un schéma fonctionnel d'un combineur linéaire adaptatif avec un bloc séparé pour le processus d'adaptation.
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.
Schéma fonctionnel compact d'un combineur linéaire adaptatif sans bloc séparé pour le processus 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.

y k = l = 0 L w l k _ x l k = W k T x k {\displaystyle y_{k}=\sum _{l=0}^{L}w_{lk}\_x_{lk}=\mathbf {W} _{k}^{T}\mathbf {x} _{k}}
w l k {\displaystyle w_{lk}} désigne le l {\displaystyle l} 'ième poids au k'ième temps.

L'algorithme LMS

Article détaillé : Filtre des moindres carrés.

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 l = 0 L {\displaystyle l=0\dots L}
w l , k + 1 = w l k + 2 μ   ϵ k   x k l {\displaystyle w_{l,k+1}=w_{lk}+2\mu \ \epsilon _{k}\ x_{k-l}}
μ 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 :

w l , k + 1 = w l k + 2 μ   ϵ k   x l k {\displaystyle w_{l,k+1}=w_{lk}+2\mu \ \epsilon _{k}\ x_{lk}}

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, y k {\displaystyle y_{k}} , 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

μ 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

0 < μ < 1 σ 2 {\displaystyle 0<\mu <{\frac {1}{\sigma ^{2}}}}
σ 2 = l = 0 L σ l 2 {\displaystyle \sigma ^{2}=\sum _{l=0}^{L}\sigma _{l}^{2}} = somme de toutes les puissances d'entrée.
σ l {\displaystyle \sigma _{l}} est la valeur RMS de la l {\displaystyle l} '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

σ 2 = ( L + 1 ) σ 0 2 {\displaystyle \sigma ^{2}=(L+1)\sigma _{0}^{2}}
σ 0 {\displaystyle \sigma _{0}} est la valeur efficace de x k {\displaystyle x_{k}} , le flux d'entrée[7].

Cela conduit à un algorithme LMS normalisé :

w l , k + 1 = w l k + ( 2 μ σ σ 2 ) ϵ k   x k l {\displaystyle w_{l,k+1}=w_{lk}+\left({\frac {2\mu _{\sigma }}{\sigma ^{2}}}\right)\epsilon _{k}\ x_{k-l}} auquel cas le critère de convergence devient : 0 < μ σ < 1 {\displaystyle 0<\mu _{\sigma }<1} .

Filtres adaptatifs non linéaires

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

y i = j = 0 m w j N x i j {\displaystyle y_{i}=\sum _{j=0}^{m}w_{j}\mathbb {N} -x_{ij}}

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

y i = j = 0 m f j ( x i j ) {\displaystyle y_{i}=\sum _{j=0}^{m}f_{j}(x_{ij})}

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

Applications des filtres adaptatifs

  • Annulation du bruit
  • Prédiction du signal
  • Annulation de la rétroaction adaptative
  • Annulation d'écho

Implémentations de filtre

Notes et références

  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 Accès limité), 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

Liens externes

  • Notice dans un dictionnaire ou une encyclopédie généralisteVoir et modifier les données sur Wikidata :
    • Gran Enciclopèdia Catalana
  • icône décorative Portail de l’électricité et de l’électronique
  • icône décorative Portail des télécommunications
  • icône décorative Portail des mathématiques