🎯 Filtre de Kalman · fondements théoriques

Chapitre 16 · Application
Estimer la variance d'un capteur (R) : datasheet & mesures

Le chiffre qu'on entre sans trop savoir d'où il vient. Tout le cours répète que R = σ² est « un fait mesurable, pas un réglage » (chapitres 5, 11, 12). Encore faut-il l'obtenir correctement — depuis une fiche technique au vocabulaire piégeux, ou depuis des mesures qui cachent leurs propres traquenards (biais, dérive). Ce chapitre détaille les deux voies.

Objectifs du chapitre

1. Ce que R est — et n'est pas

R est la variance du bruit de mesure : le bruit supposé blanc (sans mémoire) et centré (sans biais) du modèle z = H·x + v, v ∼ N(0, R) (chapitre 5). C'est une variance : ses unités sont des carrés (deg², m², (m/s²)²).

Le piège numéro un : confondre bruit et justesse. Une datasheet mélange deux choses très différentes. Le bruit (répétabilité, noise, RMS) est la dispersion aléatoire autour de la vraie valeur → il va dans R. La justesse (accuracy, offset, erreur de gain, non-linéarité, dérive en température) est une erreur systématique — un biais, pas du bruit. La mettre dans R gonfle artificiellement l'incertitude ; pire, un biais non traité fait dériver l'estimation quoi qu'on fasse. Un biais se calibre ou s'estime dans l'état (chapitre 10), il ne se noie pas dans R.

2. Depuis la datasheet : décoder le vocabulaire

Les fiches donnent rarement « la variance ». Elles donnent l'une des formes suivantes, qu'il faut traduire en σ (puis R = σ²).

Spécification donnéeComment obtenir σ
Densité spectrale de bruit
(µg/√Hz, mdps/√Hz, nV/√Hz…)
σ = densité × √(BW)
BW = bande passante de bruit effective ≈ 1,57·f_c (filtre 1er ordre) ou l'ODR/filtre en sortie
Bruit RMS (à une BW précisée) σ = RMS directement (le bruit est centré ⇒ RMS = σ)
Bruit crête-à-crête (pk-pk, ±X) σ ≈ (pk-pk) / 6 (gaussien : ±3σ ≈ 99,7 %)
Résolution / LSB q bruit de quantification σ_q = q/√12 (plancher, à combiner)

D'où vient √BW ? Une densité spectrale d (en unité/√Hz) est une racine de densité de puissance. La puissance (variance) est l'intégrale de la densité de puissance sur la bande : σ² = ∫ d² df = d²·BW, d'où σ = d·√BW. Le 1,57 = π/2 est la bande de bruit équivalente d'un filtre 1er ordre de coupure f_c (elle laisse passer un peu plus que f_c).

Exemple — accéléromètre. Densité 150 µg/√Hz, filtre de sortie à f_c = 50 Hz :

BW = 1,57 × 50 = 78,5 Hz   →   σ = 150·10⁻⁶ × √78,5 ≈ 1,33·10⁻³ g
σ ≈ 1,33 mg ≈ 0,013 m/s²   →   R = σ² ≈ 1,7·10⁻⁴ (m/s²)²

Exemple — inclinomètre. Fiche : « bruit RMS 0,008° à 10 Hz », résolution 0,001°. Bruit analogique σ = 0,008° ; quantification σ_q = 0,001/√12 ≈ 0,0003° (négligeable). R ≈ (0,008)² = 6,4·10⁻⁵ deg².

La datasheet donne le bruit à une bande passante précise. Si vous filtrez davantage (sortie plus lente), R diminue (moins de bande = moins de bruit) — mais vous ajoutez du retard (chapitre 11). Réduire R par filtrage n'est pas gratuit : c'est un compromis bruit ↔ latence, pas une amélioration pure.

3. Depuis des mesures : la méthode de référence

La datasheet donne un ordre de grandeur ; votre montage a son propre bruit (câblage, CAN, environnement). La mesure directe est la référence. Le protocole : capteur immobile (ou mesurant une grandeur constante connue), on enregistre N échantillons, et :

moyenne (= biais) :   μ̂ = (1/N) Σ zᵢ
variance (Bessel) :   s² = (1/(N−1)) Σ (zᵢ − μ̂)²   →   R = s²

Le diviseur N−1 (correction de Bessel) rend l'estimateur non biaisé — on a « dépensé » un degré de liberté à estimer μ̂. La moyenne μ̂ n'est pas du bruit : c'est le biais du capteur, à retirer (§1).

Histogramme de 4000 mesures d'un capteur immobile, en forme de cloche, avec une gaussienne ajustée superposée en vert. Une ligne verticale ambre marque la moyenne (le biais, ≈ 0,15°) avec la mention 'à retirer, ce n'est pas du bruit'. Des lignes pointillées marquent ±1σ et ±2σ. Un encart indique σ = 0,402° et R = s² = 0,1618 deg².
Figure 16.1. Mesurer R au repos. Les échantillons forment une cloche ; on ajuste une gaussienne. La moyenne (ambre) est le biais — on la retire. La dispersion autour de la moyenne donne σ, et R = s². (Ici σ ≈ 0,40° pour un bruit injecté de 0,40° : l'estimateur retombe sur la vérité.)

Combien d'échantillons ? L'estimation elle-même a une incertitude. Pour un bruit gaussien, l'écart-type relatif de vaut √(2/(N−1)). Pour connaître R à ±10 % il faut N ≈ 200 ; à ±3 %, N ≈ 2000. Quelques milliers d'échantillons suffisent donc largement. L'intervalle de confiance exact vient du χ² : (N−1)s²/R ∼ χ²(N−1).

Sur automate, on n'accumule pas un tableau : on calcule moyenne et variance en un seul passage, de façon numériquement stable, par l'algorithme de Welford.

// SCL — variance en ligne (Welford), un échantillon à la fois.
// #n, #mean, #M2 en statique, initialisés à 0 ; z = échantillon courant.
#n    := #n + 1.0;
#d1   := #z - #mean;
#mean := #mean + #d1 / #n;          // moyenne courante (le biais)
#d2   := #z - #mean;
#M2   := #M2 + #d1 * #d2;           // somme des carrés des écarts
IF #n > 1.0 THEN
    #variance := #M2 / (#n - 1.0);  // R = variance (Bessel)
END_IF;

4. Le piège du bruit non-blanc

La variance empirique suppose un bruit blanc. Or un capteur réel dérive : biais lentement variable, instabilité de biais, bruit basse fréquence (1/f). Ces composantes sont corrélées dans le temps — elles violent l'hypothèse, et la variance naïve calculée sur une longue fenêtre les compte comme du bruit : elle gonfle avec la durée d'observation.

Variance estimée en fonction de la durée de la fenêtre de mesure, de 0 à 60 s. Une ligne horizontale en tirets marque le R vrai (bruit blanc). La variance naïve (ambre) part correctement mais grimpe fortement à partir de ~35 s, à mesure que la dérive contamine l'estimation. L'estimateur lag-1 (vert) reste collé au R vrai sur toute la fenêtre.
Figure 16.2. La variance naïve (ambre) sur une longue fenêtre gonfle : elle capte la dérive en plus du bruit blanc. L'estimateur à différences successives (lag-1, vert) reste collé au vrai R — la différence zᵢ₊₁ − zᵢ annule la dérive lente et ne garde que le bruit blanc.

Deux parades. La plus simple : l'estimateur à différences successives (lag-1), robuste à la dérive lente :

R̂ = (1 / (2(N−1))) · Σ (zᵢ₊₁ − zᵢ)²

La différence zᵢ₊₁ − zᵢ soustrait deux instants voisins : la dérive (quasi constante d'un pas à l'autre) disparaît, seul le bruit blanc subsiste. Le facteur 2 vient de Var[zᵢ₊₁ − zᵢ] = 2σ² pour un bruit blanc.

La plus complète : la variance d'Allan. On calcule l'écart-type des moyennes de blocs de durée croissante τ et on le trace en log-log. Chaque type de bruit y a sa signature de pente.

Courbe de la déviation d'Allan en fonction du temps d'intégration τ, en échelle log-log, en forme de vallée. À gauche, une pente −½ marquée 'bruit blanc, lire R ici (τ = τ0)'. Au fond de la vallée, un point marqué 'plancher : instabilité de biais'. À droite, une pente +½ marquée 'dérive'.
Figure 16.3. La variance d'Allan sépare les bruits par leur pente. Pente −½ (à gauche) : bruit blanc — c'est là qu'on lit le R du filtre (à τ = τ₀, un pas). Plancher : instabilité de biais (irréductible, on ne peut pas moyenner en dessous). Pente (à droite) : dérive (marche aléatoire). Un seul graphe dit quelle part du « bruit » est vraiment blanche.

Retenez la lecture : le R à mettre dans le filtre est la part blanche (pente −½), lue au temps d'intégration le plus court. La part dérive (pente +½) n'est pas du bruit de mesure : c'est un biais lentement variable, que le filtre gère mieux en l'estimant dans l'état (chapitre 10) qu'en gonflant R.

5. R dépend des conditions

R n'est pas toujours une constante universelle. Il dépend de :

6. Refermer la boucle : la cohérence valide R

Datasheet et mesure donnent un point de départ. Le juge final est le filtre lui-même, en fonctionnement, via le test de cohérence (chapitre 12) : si la NIS est systématiquement trop grande, l'incertitude annoncée est trop petite (R ou Q sous-estimés) ; trop petite, c'est l'inverse. Concrètement, en régime permanent, la variance empirique des innovations doit coïncider avec la S prédite par le filtre. On ajuste alors R (dans la fourchette plausible du capteur) et Q jusqu'à la cohérence.

7. Le cas multi-capteur : la matrice R

Pour une mesure vectorielle, R est une matrice. Deux cas :

Exercices

Exercice 1 — De la densité à R

Un gyromètre annonce une densité de bruit de 0,008 °/s/√Hz et un filtre de sortie à f_c = 20 Hz. Donnez σ (en °/s) puis R.

Voir la solution
BW = 1,57 × 20 = 31,4 Hz
σ = 0,008 × √31,4 ≈ 0,008 × 5,60 ≈ 0,0448 °/s
R = σ² ≈ 2,0·10⁻³ (°/s)²

Si l'on abaisse le filtre à f_c = 5 Hz, σ est divisé par 2 (√4) et R par 4 — au prix d'un retard accru.

Exercice 2 — Pourquoi lag-1 et pas la variance globale ?

On enregistre un capteur au repos pendant 10 minutes ; il présente une lente dérive thermique. La variance globale donne 0,05 deg², l'estimateur lag-1 donne 0,009 deg². Laquelle mettre dans R, et que faire de l'autre ?

Voir la solution

On met R = 0,009 deg² (lag-1) : c'est la part blanche, seule légitime pour le bruit de mesure. La variance globale 0,05 est gonflée par la dérive thermique — un biais lentement variable. Le mettre dans R rendrait le filtre inutilement méfiant. La bonne réponse à la dérive : l'estimer dans l'état (augmenter d'un état de biais, chapitre 10) ou la compenser par calibration en température — pas la noyer dans R.

Récapitulatif