Variantes de l`algorithme LMS

publicité
Variantes de l’algorithme LMS
Il existe de très nombreuses variantes de l’algorithme
LMS. Nous allons voir quelques unes qui sont très
utiles.
INRS-EMT J. Benesty
Plan
• L’algorithme LMS normalisé (normalized LMS –
NLMS)
• Les algorithmes du signe
• L’algorithme “leaky” LMS
• L’algorithme L-vecteur
• L’algorithme de projection affine (APA)
INRS-EMT J. Benesty
1
L’algorithme LMS normalisé (normalized
LMS – NLMS)
Rappelons l’algorithme LMS:
e(n) = d(n) − y(n) = d(n) − hT (n)x(n),(1)
h(n + 1) = h(n) + µx(n)e(n),
(2)
où µ est le pas d’adaptation de l’algorithme [qui dépend
de l’énergie du signal x(n)].
Pour des signaux non stationnaires (l’énergie du signal
x(n) varie avec le temps), l’algorithme LMS aura du
mal à fonctionner correctement puisque µ est constant.
L’algorithme LMS normalisé (normalized LMS –
NLMS) est obtenu en minimisant la fonction coût
suivante:
J(n) = h(n + 1) − h(n)2
(3)
avec la contrainte:
hT (n + 1)x(n) = d(n).
INRS-EMT J. Benesty
(4)
2
Cela revient à minimiser la mise à jour des coefficients
du filtre tout en minimisant le signal d’erreur pour
x(n).
La solution de ce problème est obtenue en utilisant la
technique des multiplieurs de Lagrange. En effet, on
cherchera à minimiser par rapport à h(n + 1):
J(n) = h(n + 1) − h(n)2 + λ[d(n) − hT (n + 1)x(n)],
où λ est le multiplieur de Lagrange. On obtient:
∂J(n)
∂h(n + 1)
= 2[h(n + 1) − h(n)] − λx(n) (5)
= 0L×1,
soit
λ
h(n + 1) = h(n) + x(n).
2
(6)
Or, d’après la contrainte:
d(n) = hT (n + 1)x(n)
λ T
T
= h (n)x(n) + x (n)x(n).
2
INRS-EMT J. Benesty
(7)
3
Ce qui donne:
λ=
2e(n)
.
T
x (n)x(n)
(8)
Finalement, on obtient l’algorithme NLMS:
λ
h(n + 1) = h(n) + x(n)
2
1
= h(n) + T
x(n)e(n).
x (n)x(n)
(9)
En pratique, pour mieux controler la mise à jour des
coefficients du filtre, on introduit un facteur positive α
(0 < α < 2) :
h(n + 1) = h(n) +
α
x(n)e(n).
T
x (n)x(n)
(10)
En fait, pour L assez grand et pour un signal
stationnaire, on a:
α
xT (n)x(n)
=
L−1
l=0
≈
α
x2(n
α
= µ,
2
Lσx
− l)
(11)
(12)
qui est le pas d’adaptation du LMS.
INRS-EMT J. Benesty
4
Pour éviter des difficultés numériques (division par des
petits nombres) quand l’énergie du signal d’entrée est
petite, on modifie l’algorithme comme suit:
α
x(n)e(n),
h(n + 1) = h(n) +
δ + xT (n)x(n)
(13)
où δ > 0 est un paramètre de régularisation.
Stabilité de l’algorithme NLMS:
Pour simplifier, on suppose que δ = 0. L’erreur du
signal:
e(n) = d(n) − hT (n)x(n)
(14)
est aussi appelée erreur “a priori” car elle utilise les
coefficients du filtre avant la mise à jour. L’erreur “a
posteriori” est définie par:
(n) = d(n) − hT (n + 1)x(n)
(15)
et se calcule une fois que la mise à jour a été effectuée.
L’algorithme peut être considéré comme stable si la
valeur absolue de l’erreur “a posteriori” est plus petite
que celle de l’erreur “a priori”, ce qui est logique
puisque (n) exploite davantage d’informations.
INRS-EMT J. Benesty
5
En remplaçant l’équation du NLMS:
h(n + 1) = h(n) +
α
x(n)e(n)
T
x (n)x(n)
(16)
dans l’erreur “a posteriori”, on obtient:
(n) = d(n) − hT (n + 1)x(n)
= d(n) − hT (n)x(n) − αe(n)
= e(n)[1 − α].
(17)
Donc:
|(n)| < |e(n)|,
|e(n)[1 − α]| < |e(n)|,
|1 − α| < 1,
0 < α < 2,
(18)
qui est la condition de stabilité de l’algorithme NLMS.
INRS-EMT J. Benesty
6
Les algorithmes du signe
L’algorithme LMS est obtenu à partir du critère des
moindres carrés moyens. On peut utiliser le critère
de la moindre valeur absolue moyenne (least mean
absolute value):
Ja = E{|e(n)|}
(19)
= E{|d(n) − hT x(n)|}.
Le gradient de la fonction Ja est:
ga =
∂Ja
= −E{x(n)signe[e(n)]},
∂h
(20)
où le signe vaut +1 si e(n) est positif et −1 sinon. Le
gradient instantané est:
ga = −x(n)signe[e(n)],
(21)
et on obtient l’algorithme signe-erreur (sign-error):
ga
h(n + 1) = h(n) − µa
= h(n) + µax(n)signe[e(n)], (22)
où µa > 0 est le pas d’adaptation de l’algorithme.
INRS-EMT J. Benesty
7
Condition de stabilité:
L’algorithme peut être considéré comme stable si
|(n)| < |e(n)|, où (n) est l’erreur “a posteriori”:
(n) = d(n) − hT (n + 1)x(n)
T
x (n)x(n)
.
= e(n) 1 − µa
|e(n)|
(23)
On en déduit:
0 < µa <
2|e(n)|
,
T
x (n)x(n)
(24)
qui est la condition de stabilité de l’algorithme.
Une autre façon de simplifier les filtres adaptatifs
par gradient consiste à utiliser l’équation d’évolution
suivante:
h(n + 1) = h(n) + µasigne[x(n)]e(n), (25)
où µa > 0 est le pas d’adaptation de l’algorithme.
C’est l’algorithme signe-données (sign-data) dont la
condition de stabilité est:
0<
INRS-EMT J. Benesty
µa
2
< T
.
x (n)signe[x(n)]
(26)
8
En poursuivant dans cette voie, on arrive à l’algorithme
signe-signe (sign-sign):
h(n + 1) = h(n) + µa signe[x(n)]signe[e(n)],
(27)
dont la condition de stabilité est:
0 < µa <
2|e(n)|
.
T
x (n)signe[x(n)]
(28)
Globalement, on peut dire que l’algorithme signe-signe
est plus lent que le gradient classique et conduit à une
erreur quadratique moyenne supplémentaire supérieure.
Cependant, il est très simple à réaliser et très robuste.
INRS-EMT J. Benesty
9
L’algorithme “leaky” LMS
Quand la matrice d’autocorrélation R du signal
d’entrée x(n) est mal conditionnée (la valeur propre
minimimale λmin est proche de zéro), l’algorithme LMS
aura du mal à converger.
L’algorithme leaky LMS est:
h(n + 1) = (1 − µγ)h(n) + µx(n)e(n),
(29)
où 0 < γ < 1. A noter que quand x(n) = 0, le filtre
h(n) convergera vers zéro.
L’équation du leaky LMS peut encore s’écrire:
h(n + 1) = [(1 − µγ)I − µx(n)xT (n)]h(n) + µd(n)x(n),
en prenant l’espérance mathématique et en utilisant
l’hypothèse d’indépendance, on a:
E{h(n + 1)} = [(1 − µγ)I − µR]E{h(n)} + µp. (30)
Après convergence, càd:
lim E{h(n)} = h(∞),
n→∞
INRS-EMT J. Benesty
(31)
10
on obtient:
h(∞) = [(1 − µγ)I − µR]h(∞) + µp,
soit
h(∞) = [R + γI]−1p.
(32)
On voit que le facteur γ introduit un biais sur les
coefficients du filtre, qui s’expriment en fonctions des
valeurs optimales par:
h(∞) = [R + γI]−1Rhopt
−1 −1
= I + γR
hopt.
(33)
A noter que le même effet s’obtient en ajoutant un
bruit blanc au signal d’entrée x(n), ce qui revient à
ajouter une constante aux éléments de la diagonale
principale de la matrice R.
Finalement, on voit donc bien que pour γ > 0, la valeur
propre minimale de la matrice [R+γI] est λmin +γ > 0.
INRS-EMT J. Benesty
11
L’algorithme L-vecteur
Dans certaines applications, le signal désiré n’est pas
connu, par conséquent le signal d’erreur ne peut pas
être calculé.
L’algorithme LMS est:
h(n + 1) = h(n) + µx(n)e(n)
(34)
= h(n) − µx(n)xT (n)h(n) + µd(n)x(n).
A noter qu’il n’est pas nécessaire de connaitre d(n),
par contre la connaissance de d(n)x(n) est requise.
Dans l’algorithme L-vecteur, on remplace d(n)x(n) par
sa moyenne d’ensemble p = E{d(n)x(n)}. On obtient
ainsi:
h(n + 1) = h(n) − µx(n)xT (n)h(n) + µp.
(35)
En général, p n’est pas connu. Cependant, dans
certaines applications il peut être possible de l’estimer.
INRS-EMT J. Benesty
12
L’algorithme de projection affine
L’algorithme de projection affine (APA) est une
généralisation de l’algorithme NLMS.
Soit la matrice de dimension L × P suivante:
X(n) =
x(n) x(n − 1) · · ·
x(n − P + 1)
,
contenant les P vecteurs les plus récents du signal
d’entrée x(n). Soit le vecteur de longueur P suivant:
d(n) =
d(n) d(n − 1) · · ·
d(n − P + 1)
T
,
dont les éléments sont les P derniers échantillons du
signal désiré d(n).
L’APA est obtenu en minimisant la fonction coût
suivante:
J(n) = h(n + 1) − h(n)2
(36)
avec les P contraintes:
hT (n + 1)x(n − p) = d(n − p), p = 0, 1, · · · , P − 1.
INRS-EMT J. Benesty
13
Ces contraintes peuvent s’écrire sous forme vectorielle:
XT (n)h(n + 1) = d(n).
(37)
La solution de ce problème est obtenue en utilisant la
technique des multiplieurs de Lagrange. En effet, on
cherchera à minimiser par rapport à h(n + 1):
J(n) = h(n + 1) − h(n)2 + λ T [d(n) − XT (n)h(n + 1)],
où
λ=
λ 0 λ1 · · ·
λP −1
T
est le vecteur multiplieur de Lagrange. On obtient:
∂J(n)
∂h(n + 1)
λ (38)
= 2[h(n + 1) − h(n)] − X(n)λ
= 0L×1,
soit
1
λ.
h(n + 1) = h(n) + X(n)λ
2
INRS-EMT J. Benesty
(39)
14
Or, d’après les contraintes:
d(n) = XT (n)h(n + 1)
1
λ.
= XT (n)h(n) + XT (n)X(n)λ
2
(40)
Ce qui donne:
−1
e(n),
λ = 2 X (n)X(n)
T
(41)
où
e(n) =
e(n) e(n − 1) · · ·
= d(n) − XT (n)h(n),
e(n − P + 1)
T
(42)
est le vecteur d’erreur “a priori”.
Finalement, l’APA est:
1
λ
(43)
h(n + 1) = h(n) + X(n)λ
2
−1
e(n).
= h(n) + X(n) XT (n)X(n)
INRS-EMT J. Benesty
15
En remplaçant e(n) = d(n) − XT (n)h(n) dans
l’équation d’adaptation du filtre, l’APA peut encore
s’écrire:
−1
d(n),
h(n + 1) = [I − P(n)] h(n) + X(n) XT (n)X(n)
où
−1
XT (n)
P(n) = X(n) X (n)X(n)
T
(44)
est une matrice de projection.
On propose de modifier légèrement l’algorithme comme
on l’a fait pour le NLMS:
−1
e(n), (45)
h(n + 1) = h(n) + αX(n) δI + X (n)X(n)
T
où 0 < α < 2 et δ est un facteur de régularisation. On
peut facilement vérifier que pour P = 1, on obtient
l’algorithme NLMS.
INRS-EMT J. Benesty
16
Condition de stabilité:
Pour simplifier, on suppose que δ = 0. On définit le
vecteur erreur “a posteriori”:
(n) = d(n) − XT (n)h(n + 1)
(46)
et se calcule une fois que la mise à jour a été effectuée.
L’algorithme peut être considéré comme stable si:
T (n)(n) < eT (n)e(n).
(47)
On peut facilement voir que: (n) = (1 − α)e(n).
Dans ce cas, l’équation (47) devient:
(1 − α)2 < 1,
(48)
et la condition de stabilité est:
0 < α < 2,
(49)
qui est identique à celle obtenue pour l’algorithme
NLMS.
INRS-EMT J. Benesty
17
Résumé de l’APA pour des données complexes:
Calcul du vecteur de sortie du filtre:
y(n) = XH (n)h(n).
(50)
Calcul du vecteur du signal d’erreur:
e(n) = d∗(n) − y(n).
(51)
Mise à jour du filtre:
−1
e(n).
h(n + 1) = h(n) + αX(n) δI + X (n)X(n)
(52)
α, 0 < α < 2, est le pas d’adaptation normalisé
de l’algorithme qui démarre avec une initialisation
quelconque h(0). Le paramètre δ > 0 est le facteur
de régularisation. P , la longueur du vecteur du signal
d’erreur, est l’ordre de projection.
INRS-EMT J. Benesty
H
18
Téléchargement