Filtrage Lineaire Optimal
Filtre de Wiener & Prédiction linéaire
Maria Oliver-Parera
[Link]-parera@[Link]
(GipsaLab – B106)
Filtrage de Wiener
Intérêt principal du filtre de Wiener
Le filtre de Wiener permet d’obtenir un signal propre à partir d’un signal bruité, en réduisant au
minimum l’erreur quadratique moyenne.
Norbert Wiener
(1894–1964)
2 / 30
Applications du filtre de Wiener
³ Télécommunications : égalisation de canal, réduction du taux d’erreur binaire (BER).
³ Audio et parole : réduction du bruit de fond, amélioration des appels et reconnaissance
vocale.
³ Contrôle et ingénierie : amélioration des mesures de capteurs dans les systèmes de contrôle.
³ Images numériques : restauration d’images dégradées par un bruit gaussien.
³ Médecine : filtrage de signaux physiologiques (ECG, EEG, EMG).
³ Astronomie : traitement d’images de télescopes affectées par le bruit et la turbulence.
3 / 30
Exemple en traitement du signal
Example
Signal bruité d(n) Signal filtré y(n)
³ Observation : le filtre Wiener réduit fortement le bruit tout en gardant la forme du signal
utile.
4 / 30
Exemple en traitement d’images
Example (Traitement d’images : réduction du bruit)
signal corrompu avec
N (µ = 0, σ 2 = 650)
signal corrompu avec
N (µ = 0, σ 2 ≈
650/105 ) 5 / 30
Énoncé du problème
Le problème
Nous observons un signal bruité d(n) = u(n) + bruit(n)
Objectif
Construire un filtre linéaire de coefficients wk :
X
y(n) = wk u(n − k),
k
qui minimise l’erreur quadratique moyenne (MSE) :
J = E[e(n)2 ], e(n) = d(n) − y(n).
³ Idée clé Le filtre ne peut reproduire que ce qui est corrélé aux données u(n − k). Le bruit non corrélé
reste dans l’erreur e(n).
6 / 30
Condition d’optimalité
Idée clé
∂J
Pour obtenir les wk optimaux, on dérive J et on impose ∂wk = 0.
!2
∂E[e(n)2 ]
2
∂e (n) ∂ X
=E = E d(n) − wk u(n − k) =
∂wk ∂wk ∂wk
k
!
X
E 2 d(n) −
wk u(n − k) (−u(n − k))
= −2E [e(n)u(n − k)] = 0
k
| {z }
e(n)
Résultat
E [eopt (n) u(n − k)] = 0 (L’erreur optimale est orthogonale aux données)
7 / 30
Équations de Wiener-Hopf : forme générale
³ Idée clé : À l’optimum, l’erreur eopt (n) est orthogonale aux données u(n − k). Cela donne la
condition :
X
Eu(n − k) d(n) − wopt,j u(n − j) = 0, k = 0, 1, . . .
j
³ Développement Pour un signal u(n) stationnaire :
X
E[u(n − k) d(n)] = wopt,j E[u(n − k) u(n − j)] .
| {z } | {z }
j
Rud (−k) Ruu (j−k)
Équations de Wiener-Hopf
X
wopt,j Ruu (j − k) = Rud (−k), k = 0, 1, . . .
j
8 / 30
Solution pour un filtre FIR : forme matricielle
³ Hypothèse On suppose que le filtre est à réponse impulsionnelle finie (RIF) de longueur M.
Dans ce cas :
M−1
X
wopt,j Ruu (j − k) = Rud (−k), k = 0, 1, . . . , M − 1
j=0
Écriture matricielle
Ruu (0) . . . Ruu (M − 1)
Ruu (1)
wopt,0 Rud (0)
..
wopt,1 Rud (−1)
Ruu (1) Ruu (0) ... .
.. .. ..
. = .
.. .. ..
. . . .
Ruu (M − 1) Ruu (M − 2) . . . Ruu (0) wopt,M−1 Rud (M − 1)
| {z }| {z } | {z }
Ruu wopt Rud
Par conséquent : wopt = R−1
uu Rud
9 / 30
Équations de Wiener–Hopf et Yule–Walker
Cas particulier :
Équations de Wiener–Hopf prédiction AR
Équations de Yule–Walker
Ruu wopt = rud Ruu a = ru
Résumé
³ Wiener–Hopf : formulation générale du filtrage optimal.
³ Yule–Walker : cas particulier de Wiener–Hopf pour la prédiction d’un processus AR.
Grandeur Wiener–Hopf Yule–Walker
Équations Ruu wopt = rud Ruu a = ru
⊤
PM
Erreur quadratique minimale PM = Ruu (0) − r wopt σv2 = k=0 ak Ruu (k)
10 / 30
Exemple numérique (1/2)
Example (Filtre de Wiener : mise en place)
Considérons le signal d(n) = u(n) + v(n), avec u(n) = {1, 2, 1, 0, . . . } et bruit blanc, centré, non
corrélé à u.
Objectif. Déterminer le filtre linéaire FIR d’ordre M = 2 qui ajuste au mieux le signal désiré d(n) à
partir de l’entrée u(n), au sens des moindres carrés.
X
Ruu (0) = u[n]2 = 12 + 22 + 12 = 6,
n
X
Ruu (1) = u[n] u[n − 1] = 2 · 1 + 1 · 2 = 4.
n
Comme d = u + v et v ⊥ u ⇒ Rud (k) = Ruu (k) :
Rud (0) = 6, Rud (−1) = Ruu (1) = 4.
11 / 30
Example (Filtre de Wiener : résolution)
Système de Wiener–Hopf (M = 2)
6 4 w0 6
=
4 6 w1 4
| {z } |{z}
Ruu rud
De façon que :
1 6 −4 w0 1 6 −4 6 1
R−1
uu = ⇒ = = .
20 −4 6 w1 20 −4 6 4 0
Conclusion : le filtre optimal est y[n] = w0 u[n] + w1 u[n − 1] = u[n].
==
12 / 30
Exemple 2 — Estimation de retard
Example (Filtre de Wiener, M = 2)
Modèle. d[n] = u[n − 1] + v[n], v non corrélé à u.
Système de Wiener–Hopf.
Rud (0) = E{u[n − 1] u[n]} = Ruu (1),
w0 Rud (0)
Ruu = ,
w1 Rud (−1) Rud (−1) = E{u[n − 1] u[n − 1]} = Ruu (0).
Résultat (processus stationnaire).
Ruu (0) Ruu (1) w0 Ruu (1)
= ⇒ w0 = 0, w1 = 1 (en espérance).
Ruu (1) Ruu (0) w1 Ruu (0)
Interprétation. le filtre optimal est u(n) = u(n − 1), il apprend un retard d’un échantillon.
13 / 30
Calcul de l’erreur quadratique minimale
Pourquoi est-ce intéressant ?
Connaı̂tre l’erreur quadratique minimale Jmin nous indique la performance maximale que peut
atteindre le filtre linéaire. C’est une borne théorique : on ne pourra jamais faire mieux avec ce
modèle.
³ On rappelle :
e(n) = d(n) − y(n) ==′ ====⇒ d(n) = yopt (n) + eopt (n)
àl optimum
³ On sait que
=======⇒ E |d(n)|2 = E |yopt (n)|2 + E |eopt (n)|2 .
yopt (n) ⊥ eopt (n)
[Link] | {z }
Jmin
Résultat
σd2 = σy2opt + Jmin =⇒ Jmin = σd2 − σy2opt = σd2 − r⊤ −1
ud Ruu rud
14 / 30
Erreur quadratique minimale normalisée
En pratique, on normalise l’expression en divisant par σd2 , d’où l’erreur quadratique moyenne
normalisée minimale :
Erreur normalisée
2
Jmin σyopt
ϵ= 2 =1−
σd σd
³ On remarque que cette erreur normalisée vérifie 0 ≤ ϵ ≤ 1.
³ Si ϵ = 0, on a alors σy2opt = σd2 , ce qui correspond à une adéquation parfaite entre d et yopt .
15 / 30
Exemple 1
Example (Filtre de Wiener : erreur minimale et EQMN)
Erreur quadratique moyenne (EQM) au point Donc
optimal :
Jmin = Rdd (0) − 6 = (6 + σv2 ) − 6 = σv2
Jmin = Rdd (0) − r⊤ −1
ud Ruu rud .
et, comme y[n] = u[n], l’erreur e = d − y = v
Comme d = u + v, u ⊥ v, on a (cohérent avec v ⊥ u).
Erreur quadratique minimale normalisée
Rdd (0) = Ruu (0) + Rvv (0) = 6 + σv2 .
(EQMN) (normalisation par l’énergie/variance
6
6 −4
de d) :
Avec rud = −1
et Ruu = 201
:
4 −4 6
Jmin σv2
EQMN = =
Rdd (0) 6 + σv2
1 6 −4 6
r⊤ −1
ud Ruu rud = 6 4 = 6.
20 −4 6 4
16 / 30
Exemple 2 — Erreur quadratique minimale
Example (Estimation de retard)
Avec d[n] = u[n − 1] + v[n] et le filtre optimal y[n] = u[n − 1](w0 = 0, w1 = 1) on obtient :
e[n] = d[n] − y[n] = (u[n − 1] + v[n]) − u[n − 1] = v[n].
Erreur quadratique minimale :
Jmin = E{e[n]2 } = E{v[n]2 } = σv2 ⇒ Jmin = σv2
Normalisation par la puissance de d :
Rdd (0) = E{d[n]2 } = E{u[n − 1]2 } + E{v[n]2 } = Ruu (0) + σv2 .
Erreur quadratique minimale normalisée (EQMN) :
Jmin σv2
EQMN = =
Rdd (0) Ruu (0) + σv2
17 / 30
Limitations pratiques
Problème
³ On n’a pas accès au signal propre u(n) ⇒ impossible de calculer Ruu .
³ On ne connaı̂t pas le bruit v(n) ⇒ sans Rvv on ne peut pas séparer Ruu de Rdd .
³ La seule observation disponible est : d(n) = u(n) + v(n).
Idées principales
³ Hypothèses sur le bruit : ex. bruit blanc gaussien, estimation pendant les silences.
³ Estimation fréquentielle : Suu (ω) ≈ Sdd (ω) − Svv (ω).
³ Versions implémentables :
Suu (ω)
³ Filtre de Wiener en STFT : H(ω) = Suu (ω)+Svv (ω) .
³ Méthodes adaptatives (LMS, RLS).
18 / 30
Conclusion : Filtre de Wiener
Idée clé
Le filtre de Wiener donne la meilleure estimation linéaire au sens MSE.
Résumé des résultats
³ Condition d’optimalité : E[eopt (n) u(n − k)] = 0 (orthogonalité).
³ Système de Wiener-Hopf :
wopt = R−1
uu Rud .
³ Erreur quadratique minimale :
Jmin = σd2 − σy2opt .
Interprétation Limitations
³ Le filtre utilise toute l’information contenue ³ Nécessite de connaı̂tre les statistiques des
dans u(n). signaux (pas toujours disponible).
³ L’erreur résiduelle est bruit pur, donc ³ Optimal seulement au sens MSE et sous
irréductible. hypothèse de bruit gaussien stationnaire.
19 / 30
Prédiction linéaire avant (forward
prediction)
De Wiener à la prédiction
Lien clé
Le filtre de Wiener fournit la meilleure estimation linéaire au sens MSE.
Cas particulier : si le signal désiré d(n) est simplement un échantillon futur du processus u(n),
alors le problème de Wiener devient un problème de prédiction.
³ Filtrage de Wiener : estimer d(n) à partir d’observations corrélées u(n − k).
³ Prédiction linéaire : choisir d(n) = u(n) (ou u(n + 1), etc.) et utiliser les échantillons passés
comme observations.
Conséquence
Les équations de Wiener–Hopf se réduisent alors aux équations de Yule–Walker, qui
caractérisent les processus auto-régressifs (AR).
20 / 30
Modèle de prédiction
On considère un prédicteur linéaire d’ordre M :
M
X
û(n) = wk u(n − k).
k=1
³ Entrée : le vecteur des M derniers échantillons u(n − 1), . . . , u(n − M).
³ Sortie désirée : d(n) = u(n) (valeur future).
³ Erreur de prédiction :
fM (n) = u(n) − û(n).
Condition d’optimalité (analogie avec Wiener)
À l’optimum :
E[fM (n) u(n − k)] = 0, k = 1, . . . , M.
C’est la même condition d’orthogonalité que pour le filtre de Wiener.
21 / 30
Équations de prédiction (Yule–Walker)
En notant
u(n − 1)
u(n − 2)
u(n − 1) = ,
..
.
u(n − M)
l’équation de Wiener–Hopf appliquée à la prédiction s’écrit :
Ruu wopt = ru ,
avec
Ruu = E[u(n − 1)u⊤ (n − 1)], r = E[u(n − 1) u(n)].
Lien avec Yule–Walker
Pour un processus AR stationnaire, ce système est exactement celui des équations de
Yule–Walker, qui donnent les coefficients ak du modèle AR.
22 / 30
Exemple numérique — prédiction linéaire (1/2)
Example (De Wiener à Yule–Walker)
On considère un signal stationnaire u(n) dont on veut prédire la valeur future u(n) à partir des deux
échantillons passés u(n − 1) et u(n − 2).
û(n) = w1 u(n − 1) + w2 u(n − 2)
Objectif : déterminer les coefficients w1 , w2 qui minimisent l’erreur quadratique moyenne
P2 = E (u(n) − û(n))2 .
Équations de Wiener–Hopf :
E[u(n − k) (u(n) − w1 u(n − 1) − w2 u(n − 2))] = 0, k = 1, 2
(
Ruu (1) = w1 Ruu (0) + w2 Ruu (1)
R (0)
matriciellement Ruu (1) w1 Ruu (1)
⇒ ========⇒ uu = .
Ruu (2) = w1 Ruu (1) + w2 Ruu (0) Ruu (1) Ruu (0) w2 Ruu (2)
23 / 30
Exemple numérique — prédiction linéaire (2/2)
Example (Résolution et interprétation)
On suppose que les autocorrélations mesurées du signal sont :
Ruu (0) = 1, Ruu (1) = 0.75, Ruu (2) = 0.5.
Équations de Yule–Walker :
1 0.75 w1 0.75
= .
0.75 1 w2 0.5
Solution :
1 1 −0.75 2.2857 −1.7143 w1 0.571
R−1
uu = = ⇒ = .
1 − 0.752 −0.75 1 −1.7143 2.2857 w2 0.143
Remarque : Les coefficients trouvés (w1 ≃ 0.57, w2 ≃ 0.14) correspondent exactement à un processus
auto-régressif d’ordre 2 (AR(2)).
24 / 30
Prédiction arrière (backward prediction)
Idée de la prédiction arrière
Prédiction avant (forward)
On utilise les échantillons passés u(n − 1), u(n − 2), . . . pour estimer u(n).
Prédiction arrière (backward)
On utilise les échantillons présents u(n), u(n − 1), . . . , u(n − M + 1) pour estimer une valeur plus
ancienne, u(n − M).
³ Méthodes de Burg (analyse spectrale) : la prédiction avant et arrière sont combinées pour
estimer le modèle AR d’un signal de manière stable et symétrique.
³ Réduction de bruit et restauration de signaux : utilisée pour reconstituer des échantillons
manquants en exploitant la corrélation temporelle dans les deux directions.
³ Détection d’échos ou de réflexions : comparer prédiction avant et arrière permet
d’identifier des réflexions dans les signaux radar, sonar ou audio.
25 / 30
Modèle de prédiction arrière
On cherche un estimateur de la forme :
M
X
û(n − M) = gk u(n − k + 1).
k=1
³ Entrée : vecteur u(n) = [u(n), u(n − 1), . . . , u(n − M + 1)]⊤ .
³ Sortie désirée : d(n) = u(n − M).
³ Erreur de prédiction :
bM (n) = u(n − M) − û(n − M).
Condition d’optimalité
À l’optimum :
E[bM (n) u(n − k + 1)] = 0, k = 1, . . . , M.
26 / 30
Formulation matricielle
De façon analogue à la prédiction avant, on obtient le système :
Ruu g = rB ,
où
Ruu = E[u(n)u⊤ (n)], rB = E[u(n) u(n − M)].
Lien avec la prédiction avant
³ Pour des processus stationnaires, Ruu est symétrique.
³ Les équations de prédiction avant et arrière sont donc du même type.
³ Les coefficients optimaux gk sont les mêmes que ceux du prédicteur avant, mais ordonnés en
sens inverse.
27 / 30
Erreur de prédiction arrière
Résultat clé
À l’optimum, l’erreur minimale vaut :
PM = Ruu (0) − r⊤ wopt ,
exactement comme dans le cas de la prédiction avant.
Conséquence : Les prédicteurs avant et arrière sont équivalents en performance, seule la
répartition des coefficients diffère.
28 / 30
Résumé avant ↔ arrière
Prédiction avant Prédiction arrière
³ Entrée : u(n − 1), . . . , u(n − M) ³ Entrée : u(n), . . . , u(n − M + 1)
³ Sortie désirée : u(n) ³ Sortie désirée : u(n − M)
³ Système : Ruu w = r ³ Système : Ruu g = rB
³ Erreur : PM ³ Erreur : PM
Conclusion
Avant et arrière reposent sur les mêmes équations de Wiener–Hopf, ce sont deux cas particuliers
complémentaires du filtrage de Wiener.
29 / 30
Notes générales
³ Evaluation :
N = 60%{Exam} + 20%{TP} + 20%{TD}
³ 5% par TD
³ Lors du prochain TD :
³ nous traiterons le contenu vu aujourd’hui en cours.
³ l’évaluation portera exclusivement sur cette partie.
30 / 30