🎯 Filtre de Kalman · fondements théoriques

Chapitre 02
Boîte à outils probabiliste

Objectifs du chapitre

1. Variable aléatoire, espérance, variance

Une variable aléatoire X est une grandeur dont on ne connaît pas la valeur exacte, seulement la façon dont elle se répartit. On la résume par deux nombres.

L'espérance μ = E[X] est sa valeur moyenne, le centre de gravité de sa distribution : la valeur autour de laquelle elle se concentre. C'est un opérateur linéaire, propriété qu'on utilisera sans cesse :

E[aX + b] = a·E[X] + b
E[X + Y] = E[X] + E[Y]   (toujours, même si X et Y sont liés)

La variance σ² = Var[X] = E[(X − μ)²] mesure sa dispersion : la moyenne des carrés des écarts au centre. Sa racine, l'écart-type σ, a la même unité que X (des mètres, des radians) — c'est elle qu'on lit comme un « ± ». Une variance nulle : la variable est certaine ; grande : on ne sait presque rien.

Sous une transformation affine, la variance se comporte ainsi :

Var[aX + b] = a²·Var[X]

Le b disparaît (translater ne change pas la dispersion) et le a ressort au carré. Cette élévation au carré est la graine du fameux « sandwich » matriciel : une covariance vit dans le monde des carrés, pas dans celui des grandeurs.

2. Du scalaire au vecteur : la matrice de covariance

L'état d'un système est un vecteur — x = [position, vitesse]ᵀ, par exemple. Sa moyenne est un vecteur μ = E[x]. Mais sa dispersion ne tient plus dans un seul nombre : il faut décrire l'incertitude de chaque composante et la façon dont elles sont liées. C'est le rôle de la matrice de covariance :

Σ = E[ (x − μ)(x − μ)ᵀ ]

Développons pour un état à deux composantes x = [x₁, x₂]ᵀ :

Σ = [ Var[x₁]     Cov[x₁,x₂] ]
   [ Cov[x₁,x₂]  Var[x₂]     ]

Une matrice de covariance est toujours symétrique (Cov[x₁,x₂] = Cov[x₂,x₁]) et semi-définie positive : aucune combinaison des composantes ne peut avoir une variance négative. Ces deux propriétés seront des garde-fous précieux — un filtre dont la matrice P perd sa symétrie ou sa positivité est un filtre malade (chapitre 10).

Les termes croisés sont le secret du filtre de Kalman. C'est parce que position et vitesse sont corrélées dans P qu'une mesure de position seule permet de corriger l'estimation de vitesse : « si la position est plus avancée que prévu, c'est probablement que la vitesse était plus élevée ». La corrélation transporte l'information d'une composante mesurée vers une composante cachée.

3. La corrélation, covariance normalisée

La covariance a une unité composite (m·m/s pour position-vitesse) peu parlante. On la normalise en coefficient de corrélation, sans dimension, dans [−1, +1] :

ρ = Cov[x₁,x₂] / ( σ₁ · σ₂ )

ρ = ±1 : les variables sont liées par une relation affine parfaite (connaître l'une donne l'autre exactement). ρ = 0 : elles sont décorrélées. Attention à la nuance : décorrélé n'est pas synonyme d'indépendant en général — mais pour des variables gaussiennes (chapitre 3), les deux coïncident, ce qui simplifie énormément les calculs à venir.

4. La règle reine : transformation linéaire

Voici le résultat le plus important du chapitre — celui qui reviendra à chaque prédiction du filtre. Soit un vecteur aléatoire x de moyenne μ et de covariance Σ. On lui applique une transformation linéaire (une matrice A) et une translation b pour obtenir y = A·x + b. Alors :

μ_y = A·μ + b
Σ_y = A·Σ·Aᵀ

La moyenne se transporte simplement (linéarité de l'espérance). Mais la covariance se transporte en sandwich : A à gauche, sa transposée Aᵀ à droite. C'est la généralisation matricielle exacte du scalaire vu plus haut.

La moyenne : par linéarité, E[Ax + b] = A·E[x] + b = Aμ + b.

La covariance : on part de la définition et on pose y − μ_y = A(x − μ) (le b s'annule) :

Σ_y = E[ (y − μ_y)(y − μ_y)ᵀ ]
    = E[ A(x − μ) · (x − μ)ᵀ Aᵀ ]
    = A · E[ (x − μ)(x − μ)ᵀ ] · Aᵀ
    = A · Σ · Aᵀ

La clé est la ligne 2 → 3 : A et Aᵀ sont des constantes, on les sort de l'espérance. La transposée apparaît parce que le second facteur (x−μ)ᵀAᵀ = [A(x−μ)]ᵀ était déjà transposé dans le produit extérieur.

L'erreur la plus fréquente de tout le domaine : écrire Σ_y = A·Σ (sans la transposée) ou A·Σ·A (sans transposer). Les deux sont faux — et souvent même pas carrés, donc pas des covariances valides. Une covariance se transporte toujours en sandwich A·Σ·Aᵀ. Vous retrouverez ce sandwich dans P⁻ = F·P·Fᵀ + Q et dans S = H·P·Hᵀ + R.

5. Additivité sous indépendance

Deux sources de bruit indépendantes s'ajoutent proprement. Si x et w sont indépendants, de covariances Σ_x et Q, alors leur somme a pour covariance :

Cov[x + w] = Σ_x + Q

Les covariances s'additionnent — sans terme croisé, précisément parce que les deux sont indépendants (leur covariance mutuelle est nulle). C'est exactement ce qui se passe quand la prédiction ajoute le bruit de process : P⁻ = F·P·Fᵀ + Q, où le + Q est le bruit du modèle qui vient gonfler l'incertitude transportée. Combinées, les deux règles des §4 et §5 sont l'équation de prédiction de la covariance (chapitre 6).

Deux briques, un résultat. La règle du sandwich (transport par A) et l'additivité sous indépendance (ajout du bruit) suffisent à propager une incertitude à travers un modèle linéaire. Il ne manquera plus qu'une forme de distribution stable sous ces opérations : la gaussienne, au chapitre suivant.

Exercices

Exercice 1 — Variance d'une différence

Un capteur mesure deux fois, indépendamment, la même grandeur : Z₁ et Z₂, chacune de variance σ². On forme l'écart D = Z₁ − Z₂. Quelle est Var[D] ? Et la moyenne M = (Z₁ + Z₂)/2 ?

Voir la solution

Pour des variables indépendantes, les variances s'ajoutent quel que soit le signe des coefficients (le signe ressort au carré) :

Var[Z₁ − Z₂] = Var[Z₁] + Var[Z₂] = 2σ²
Var[(Z₁+Z₂)/2] = (1/4)(σ² + σ²) = σ²/2

Moyenner deux mesures indépendantes divise la variance par deux (l'écart-type par √2) : c'est déjà une fusion optimale de deux capteurs de même précision. Le filtre de Kalman généralise cela à des précisions différentes.

Exercice 2 — Propager une covariance

Un état x = [p, v]ᵀ a pour covariance Σ = diag(4, 1) (position et vitesse décorrélées, variances 4 et 1). On le propage d'un pas dt = 1 par F = [[1, 1],[0, 1]] (modèle à vitesse constante). Calculez F·Σ·Fᵀ. La position et la vitesse sont-elles encore décorrélées ?

Voir la solution
F·Σ = [[1,1],[0,1]] · [[4,0],[0,1]] = [[4, 1],[0, 1]]
(F·Σ)·Fᵀ = [[4,1],[0,1]] · [[1,0],[1,1]] = [[5, 1],[1, 1]]

Le terme croisé vaut désormais 1, non nul : la propagation a créé de la corrélation entre position et vitesse, alors qu'il n'y en avait aucune au départ. C'est logique — sur un pas, la position future dépend de la vitesse — et c'est ce couplage qui permettra plus tard d'estimer la vitesse à partir de mesures de position seule.

Récapitulatif