Algorithme des moindres carrés récursif rapide – MCRR (fast

publicité
Algorithme des moindres carrés
récursif rapide – MCRR (fast
recursive least-squares – FRLS)
L’algorithme RLS nécessite une complexité de calcul
proportionnelle à L2 (L étant la longueur du filtre) à
chaque itération. Nous développons ici un algorithme
rapide dont la complexité arithmétique est seulement
proportionnelle à L.
INRS-EMT J. Benesty
Plan
• Equations de récurrence pour le filtre d’ordre L
• Relations entre les variables de moindres carrés
• Algorithme MCR rapide basé sur les erreurs a priori
• Algorithme MCR rapide basé sur l’ensemble des
erreurs de prédiction
INRS-EMT J. Benesty
1
Equations de récurrence pour le filtre
d’ordre L
Le signal d’erreur pour le filtre adaptatif d’ordre L est
défini par:
e(n + 1) = d(n + 1) − xT (n + 1)h(n),
(1)
où les vecteurs x(n+1) et h(n) comportent L éléments.
La fonction coût, définie comme l’énergie de l’erreur
et qui s’écrit:
JL(n) =
n
λn−i
2
d(i) − hT (n)x(i) ,
(2)
i=0
conduit à la solution suivante (déjà vue):
h(n) = R−1
L (n)p(n),
INRS-EMT J. Benesty
(3)
2
avec:
RL(n) =
p(n) =
n
i=0
n
λn−ix(i)xT (i),
(4)
λn−id(i)x(i).
(5)
i=0
On se souvient de la relation de récurrence sur les
coefficients du filtre:
h(n + 1) = h(n) + R−1
L (n + 1)x(n + 1)e(n + 1). (6)
On peut mettre en évidence une autre relation de
récurrence sur les coefficients. Au temps n + 1, la
définition des coefficients donne:
T
λRL(n) + x(n + 1)x (n + 1) h(n + 1) =
λp(n) + x(n + 1)d(n + 1),
(7)
ce qui, après quelques manipulations conduit à:
h(n + 1) = h(n) + λ−1R−1
L (n)x(n + 1)ε(n + 1), (8)
où
ε(n + 1) = d(n + 1) − xT (n + 1)h(n + 1). (9)
INRS-EMT J. Benesty
3
Dans ces expressions, la matrice R−1
L (n + 1) peut être
mise à jour par récurrence grâce à l’identité matricielle
appelée lemme d’inversion. Considérant la récurrence:
RL(n + 1) = λRL(n) + x(n + 1)xT (n + 1),
(10)
on en déduit:
−1 −1
R−1
L (n + 1) = λ RL (n)
−
(11)
−1
T
λ−2R−1
L (n)x(n + 1)x (n + 1)RL (n)
.
−1
−1
T
1 + λ x (n + 1)RL (n)x(n + 1)
Il est commode de définir le gain d’adaptation k(n + 1)
par:
k(n + 1) = R−1
L (n + 1)x(n + 1),
(12)
ce qui, en utilisant (11) et après simplification, donne:
R−1
L (n)x(n + 1)
k(n + 1) =
.
−1
T
λ + x (n + 1)RL (n)x(n + 1)
INRS-EMT J. Benesty
(13)
4
Alors l’expression (11) et la récurrence sur le filtre se
réécrivent:
−1 −1
(n
+
1)
=
λ
RL (n)
R−1
L
(14)
− λ−1k(n + 1)xT (n + 1)R−1
L (n),
h(n + 1) = h(n) + k(n + 1)e(n + 1).
(15)
Les équations précédentes constituent une technique
récursive pour mettre à jour les coefficients du filtre
sans inversion de matrice.
Avec cette technique, le nombre d’opérations
arithmétiques est proportionnel à L2, à cause des
multiplications de matrices. En fait, on peut se
débarasser complètement des matrices et rendre la
compléxité proportionnelle à L seulement, en utilisant
la prédiction.
INRS-EMT J. Benesty
5
Relations entre les variables de moindres
carrés
Soit ϕ(n + 1) la quantité:
ϕ(n + 1) =
λ
.
−1
T
λ + x (n + 1)RL (n)x(n + 1)
(16)
On vérifie directement avec
−1 −1
R−1
(n
+
1)
=
λ
RL (n)
L
−
(17)
−1
T
(n)x(n
+
1)x
(n
+
1)R
λ−2R−1
L
L (n)
1 + λ−1xT (n + 1)R−1
L (n)x(n + 1)
que cette quantité s’écrit aussi:
ϕ(n + 1) = 1 − xT (n + 1)R−1
L (n + 1)x(n + 1)
= 1 − θ(n + 1).
(18)
On a:
0 < ϕ(n + 1) < 1,
(19)
puisque xT (n + 1)R−1
L (n)x(n + 1) > 0 et d’après (16).
INRS-EMT J. Benesty
6
De même, puisque 0 < ϕ(n + 1) < 1 et d’après (18),
on a:
0 < θ(n + 1) < 1.
(20)
Les deux variables ϕ(n) et θ(n) sont donc bornées. La
quantité θ(n) est appelée variable de vraisemblance. A
noter que, si le gain d’adaptation k(n) est disponible,
on obtient immédiatement θ(n) par:
θ(n) = xT (n)k(n).
(21)
La technique des moindres carrés récursifs appliquée
à la prédiction linéaire avant est basée sur la fonction
coût:
Ea(n) =
n
λ
n−i
2
T
x(i) − a (n)x(i − 1) ,
(22)
i=0
qui est l’énergie de prédiction.
coefficients est donné par:
Le vecteur des
a(n) = R−1
L (n − 1)pa,L (n),
INRS-EMT J. Benesty
(23)
7
avec:
pa,L(n) =
n
λn−ix(i)x(i − 1).
(24)
i=0
La mise à jour des coefficients se fait par:
a(n + 1) = a(n) + k(n)ea(n + 1),
(25)
ea(n + 1) = x(n + 1) − xT (n)a(n)
(26)
où
est l’erreur de prédiction a priori avant. L’erreur de
prédiction a posteriori avant est:
εa(n + 1) = x(n + 1) − xT (n)a(n + 1).
(27)
Avec (25), il vient:
εa(n + 1) = ea(n + 1) 1 − k (n)x(n) ,
T
(28)
il en résulte que:
ϕ(n) =
INRS-EMT J. Benesty
εa(n + 1)
.
ea(n + 1)
(29)
8
Un résultat similaire est obtenu avec la prédiction
linéaire arrière. Dans ce cas, la fonction coût est:
Eb(n) =
n
λn−i
2
x(i − L) − b (n)x(i) .
T
(30)
i=0
Le vecteur des coefficients de prédiction arrière est
donné par:
b(n) = R−1
L (n)pb,L (n),
(31)
avec:
pb,L(n) =
n
λn−ix(i − L)x(i).
(32)
i=0
La mise à jour se fait par:
b(n + 1) = b(n) + k(n + 1)eb(n + 1),
(33)
eb(n + 1) = x(n + 1 − L) − xT (n + 1)b(n)
(34)
où
est l’erreur de prédiction a priori arrière. L’erreur de
prédiction a posteriori arrière est:
εb(n + 1) = x(n + 1 − L) − xT (n + 1)b(n + 1). (35)
INRS-EMT J. Benesty
9
En reportant (33) dans (35), il vient:
ϕ(n + 1) =
εb(n + 1)
.
eb(n + 1)
(36)
Plus géneralement que la prédiction, le même résultat
peut être vérifié directement pour tout filtre adaptatif,
càd:
ϕ(n + 1) =
ε(n + 1)
.
e(n + 1)
(37)
D’autre part, puisque 0 < ϕ(n) < 1, on a toujours:
e2(n + 1) > ε2(n + 1).
(38)
L’énergie d’erreur de prédiction avant se calcule par
récurrence. En reportant pa,L(n + 1) = RL(n)a(n + 1)
dans Ea(n + 1), on a:
Ea(n + 1) =
n+1
λ
n+1−i
2
T
x(i) − a (n + 1)x(i − 1)
i=0
=
n+1
λn+1−ix2(i) − aT (n + 1)pa,L(n + 1).
i=0
(39)
INRS-EMT J. Benesty
10
Les relations de récurrence pour a(n+1) et pa,L(n+1),
en liaison avec les définitions du gain d’adaptation
et des coefficients de prédiction, donnent, après
simplification (montrer le):
Ea(n + 1) = λEa(n) + ea(n + 1)εa(n + 1),
(40)
et de même pour la prédiction arrière:
Eb(n + 1) = λEb(n) + eb(n + 1)εb(n + 1).
Ces calculs apparaissent directement
algorithmes de moindres carrés rapides.
INRS-EMT J. Benesty
dans
(41)
les
11
Algorithme MCR rapide basé sur les
erreurs a priori
Le gain d’adaptation est mis à jour avec l’inverse de la
matrice d’autocorrélation.
La matrice d’autocorrélation à l’ordre L + 1,
RL+1(n + 1), peut être partitionnée de deux manières,
avec les équations de prédiction avant et arrière, à
savoir:
RL+1(n + 1) =
n+1
n+1−i 2
λ
x (i)
pa,L(n + 1)
i=0
pTa,L(n
+ 1)
,
RL(n)
(42)
et
RL+1(n + 1) =
RL(n + 1)
pb,L(n + 1)
n+1 n+1−i 2
pTb,L(n + 1)
x (i − L)
i=0 λ
(43)
L’objectif est de trouver k(n + 1) tel que:
RL(n + 1)k(n + 1) = x(n + 1).
INRS-EMT J. Benesty
(44)
12
.
Comme RL(n) apparait dans (42), on calcule:
T
pa,L(n + 1)k(n)
0
. (45)
RL+1(n + 1)
=
k(n)
x(n)
Avec les définitions k(n) = R−1
L (n)x(n)
pa,L(n + 1) = RL(n)a(n + 1), on a:
pTa,L(n + 1)k(n) = aT (n + 1)x(n).
et
(46)
Introduisant l’erreur de prédiction a posteriori, il vient:
0
εa(n + 1)
, (47)
= x1(n + 1) −
RL+1(n + 1)
k(n)
0L×1
où x1(n + 1) est le vecteur des L + 1 données les plus
récentes.
De même, le partitionnement (43) conduit à:
x(n + 1)
k(n + 1)
.
=
RL+1(n + 1)
pTb,L(n + 1)k(n + 1)
0
(48)
Avec les définitions k(n + 1) = R−1
L (n + 1)x(n + 1) et
pb,L(n + 1) = RL(n + 1)b(n + 1), on a:
pTb,L(n + 1)k(n + 1) = bT (n + 1)x(n + 1),
INRS-EMT J. Benesty
(49)
13
RL+1(n + 1)
k(n + 1)
0
= x1(n + 1) −
0L×1
εb(n + 1)
(50)
.
Or le gain d’adaptation à l’ordre L + 1, noté k1(n + 1),
est défini par:
RL+1(n + 1)k1(n + 1) = x1(n + 1),
(51)
ce qui fait que les équations (47) et (50) se réécrivent:
RL+1(n + 1) k1(n + 1) −
0
k(n)
=
εa(n + 1)
0L×1
,
(52)
RL+1(n + 1) k1(n + 1) −
k(n + 1)
0
=
0L×1
εb(n + 1)
(53)
L’équation matricelle de la prédiction avant, qui résulte
du regroupement de (23) et (39), s’écrit (vérifier le):
RL+1(n + 1)
INRS-EMT J. Benesty
1
−a(n + 1)
=
Ea(n + 1)
0L×1
. (54)
14
En égalant les facteurs dans (52) et (54), on obtient:
k1(n + 1) =
0
k(n)
εa(n + 1)
+
Ea(n + 1)
1
−a(n + 1)
. (55)
De même avec l’équation de prédiction arrière:
RL+1(n + 1)
−b(n + 1)
1
=
0L×1
Eb(n + 1)
, (56)
en égalant les facteurs dans (53) et (56), on obtient:
k1(n + 1) =
k(n + 1)
0
εb(n + 1)
+
Eb(n + 1)
−b(n + 1)
1
(57)
Soit la partition du gain à l’ordre L + 1:
k1(n + 1) =
kt(n + 1)
m(n + 1)
.
(58)
Le scalaire m(n + 1) intervient dans la dernière ligne
de (57), qui s’écrit:
m(n + 1) =
INRS-EMT J. Benesty
εb(n + 1)
.
Eb(n + 1)
(59)
15
.
Le gain d’adaptation à L éléments est mis à jour par:
k(n + 1) = kt(n + 1) + m(n + 1)b(n + 1).
(60)
Mais il faut connaitre k(n + 1) pour calculer b(n + 1).
En fait, en reportant (33) dans (60), on obtient:
k(n + 1) =
kt(n + 1) + m(n + 1)b(n)
.
1 − m(n + 1)eb(n + 1)
(61)
L’initialisation conforme aux moindres carrés est
obtenue en prenant a(0) = b(0) = k(0) = 0L×1 et
Ea(0) = Constante pos..
Pour le bilan des opérations, la mise à jour du
gain d’adaptation nécessite environ 8L multiplications;
dans la partie filtrage, il faut 2L multiplications. A
l’évidence, la réduction du volume des calculs par
rapport au RLS est considérable.
INRS-EMT J. Benesty
16
Table 1: Algorithme rapide basé sur les erreurs a priori.
Calcul du gain d’adaptation:
T
ea(n + 1) = x(n + 1) − x (n)a(n)
a(n + 1) = a(n) + k(n)ea(n + 1)
T
εa(n + 1) = x(n + 1) − x (n)a(n + 1)
Ea(n + 1) = λEa(n) + ea(n + 1)εa(n + 1)
εa(n + 1)
0
1
k1(n + 1) =
+
k(n)
Ea(n + 1) −a(n + 1)
kt(n + 1)
=
m(n + 1)
T
eb(n + 1) = x(n + 1 − L) − x (n + 1)b(n)
k(n + 1) =
kt(n + 1) + m(n + 1)b(n)
1 − m(n + 1)eb(n + 1)
b(n + 1) = b(n) + k(n + 1)eb(n + 1)
Filtre adaptatif:
T
e(n + 1) = d(n + 1) − x (n + 1)h(n)
h(n + 1) = h(n) + k(n + 1)e(n + 1)
INRS-EMT J. Benesty
17
Algorithme MCR rapide basé sur
l’ensemble des erreurs de prédiction
L’algorithme précédent repose sur la relation de
récurrence:
h(n + 1) = h(n) + k(n + 1)e(n + 1).
(62)
On peut élaborer un algorithme similaire avec la
relation de récurrence duale:
h(n + 1) = h(n) + λ−1k(n + 1)ε(n + 1),
(63)
k(n + 1) = R−1
L (n)x(n + 1)
(64)
où
est le gain a priori, par opposition au gain a posteriori
k(n + 1).
De même à l’ordre L + 1:
k1(n + 1) = R−1
L+1 (n)x1 (n + 1).
INRS-EMT J. Benesty
(65)
18
En exploitant les deux partitionnements de la
matrice d’autocorrélation estimée RL+1(n) comme
précédemment, il vient:
RL+1(n)
RL+1(n)
k (n + 1)
0
0
k(n)
= x1(n + 1) −
= x1(n + 1) −
0L×1
eb(n + 1)
ea(n + 1)
0L×1
, (66)
. (67)
En reportant x1(n + 1) = RL+1(n)k1(n + 1) dans (66),
on a:
RL+1(n) k1(n + 1) −
k (n + 1)
0
=
0L×1
eb(n + 1)
(68)
L’identification avec l’équation de la prédiction arrière
(56) donne une première expression du gain à l’ordre
L + 1:
k1(n + 1) =
INRS-EMT J. Benesty
k (n + 1)
0
+
eb(n + 1)
Eb(n)
−b(n)
1
. (69)
19
.
De même avec (67) et x1(n + 1) = RL+1(n)k1(n + 1),
on obtient:
ea(n + 1)
0
=
.
RL+1(n) k1(n + 1) −
0L×1
k (n)
(70)
L’identification avec l’équation de la prédiction avant
donne une autre expression du gain:
k1(n + 1) =
0
k(n)
ea(n + 1)
+
Ea(n)
1
−a(n)
. (71)
Soit la partition du gain a posteriori à l’ordre L + 1:
k1(n + 1) =
kt(n
+ 1)
m (n + 1)
.
(72)
Le scalaire m(n + 1) intervient dans la dernière ligne
de (69), qui s’écrit:
m(n + 1) =
eb(n + 1)
.
Eb(n)
(73)
Le gain a posteriori à L éléments est mis à jour par:
k(n + 1) = kt(n + 1) + m(n + 1)b(n).
INRS-EMT J. Benesty
(74)
20
Maintenant, il faut calculer l’erreur a posteriori ε(n+1)
avec les éléments disponibles. On fait appel à la
variable ϕ(n) et qui est le rapport des erreurs a priori
et a posteriori. Il vient:
λ
= α(n + 1), (75)
λ + x (n + 1)k (n + 1) =
ϕ(n + 1)
T
et c’est la variable α(n + 1) qui est calculée dans
l’algorithme. Comme ε(n + 1) = ϕ(n + 1)e(n + 1), les
coefficients sont mis à jour par:
e(n + 1) k (n + 1).
h(n + 1) = h(n) +
α(n + 1)
(76)
La variable α(n + 1) peut se calculer récursivement.
La variable correspondant à l’ordre L + 1, α1(n + 1)
est donnée par:
α1(n + 1) = λ + xT1 (n + 1)k1(n + 1).
(77)
Les deux expressions k1(n + 1) donnent:
e2a(n + 1)
α1(n + 1) = α(n) +
Ea(n)
e2b(n + 1)
= α(n + 1) +
.
Eb(n)
INRS-EMT J. Benesty
(78)
21
L’initialisation des moindres carrés correspond à:
a(0) = b(0) = k(0) = 0L×1,
Ea(0) = E0,
Eb(0) = λ−LE0,
où E0 est une constante positive.
Pour le bilan des opérations, la mise à jour du
gain d’adaptation nécessite environ 5L multiplications;
dans la partie filtrage, il faut 2L multiplications.
Globalement, ce second algorithme apporte une
réduction de complexité par rapport au précédent de
3L.
INRS-EMT J. Benesty
22
Table 2: Algorithme rapide basé sur l’ensemble des
erreurs de prédiction.
Calcul du gain d’adaptation:
T
ea(n + 1) = x(n + 1) − x (n)a(n)
a(n + 1) = a(n) +
ea(n + 1) k (n)
α(n)
e2a(n + 1)
α1(n + 1) = α(n) +
Ea(n)
2
Ea(n + 1) = λ Ea(n) + ea(n + 1)/α(n)
e
(n
+
1)
0
1
a
k1(n + 1) =
+
k (n)
−a(n)
Ea(n)
kt(n + 1)
=
m(n + 1)
eb(n + 1) = m (n + 1)Eb(n)
k (n + 1) = kt(n + 1) + m (n + 1)b(n)
α(n + 1) = α1(n + 1) − m (n + 1)eb(n + 1)
2
Eb(n + 1) = λ Eb(n) + eb(n + 1)/α(n + 1)
b(n + 1) = b(n) +
eb(n + 1) k (n + 1)
α(n + 1)
Filtre adaptatif:
T
e(n + 1) = d(n + 1) − x (n + 1)h(n)
h(n + 1) = h(n) +
INRS-EMT J. Benesty
e(n + 1) k (n + 1)
α(n + 1)
23
Téléchargement