Top Qs
Chronologie
Chat
Contexte

Algorithme de Savitzky-Golay

De Wikipédia, l'encyclopédie libre

Remove ads

L'algorithme de Savitzky-Golay est une méthode utilisée en traitement du signal pour lisser une courbe et en extraire les dérivées successives. Il a été décrit en 1964 par Abraham Savitzky (en) et Marcel Golay[1].

Description de l'algorithme

Résumé
Contexte
Thumb
Algorithme de Savitzky-Golay appliqué sur un signal gaussien bruité avec un polynôme de degré 3 et une largeur de 9 points. De haut en bas : le signal lissé, la dérivée et la dérivée seconde.
Thumb
Lissage point par point (mêmes conditions que l'image précédente). L'arc de courbe rouge montre le résultat de la régression sur la fenêtre considérée ; les arcs de courbe en jaune montrent l'extrapolation du polynôme de régression. Les points obtenus pour le lissage sont représentés par des ronds.

Considérons une courbe y = ƒ(x), et présentant des « aspérités », des oscillations de faibles amplitudes ; on parle de signal bruité. Il s'agit d'une courbe discrète, c'est-à-dire définie par un nuage de points (x(i), y(i))1 ≤ in.

L'algorithme de lissage le plus simple est la méthode des moyennes glissantes :

  • on considère une fenêtre, un intervalle, de « demi-largeur » (nombre de points) ;
  • on calcule la moyenne y + 1 de la fonction sur l'intervalle [1 ; 2 × + 1] (l'intervalle a donc une largeur de 2 + 1, n'est pas exactement la demi-largeur) ;
  • on définit un nouveau point (x( + 1), yliss( + 1)) avec yliss( + 1) = y + 1 ;
  • on fait glisser l'intervalle d'un point et l'on recommence.

Cet algorithme est simple, mais « violent » : il atténue énormément les fortes variations, il écrête les pics.

Pour la suite, nous désignons l'intervalle i comme étant [i ; i + ], l'intervalle de milieu i et de largeur 2 + 1.

Une manière plus fine consiste à considérer un polynôme de degré d, avec d < 2 + 1. Pour chaque intervalle i, on effectue une régression pour déterminer le polynôme Pi minimisant l'erreur au sens des moindres carrés. On définit la valeur lissée

Par ailleurs, si le polynôme est au moins de degré 1, on peut déterminer la dérivée

et de manière générale, on peut déterminer la d-ième dérivée.

On voit que la méthode des moyennes glissantes est un lissage de Savitzky-Golay avec un polynôme de degré 0.

Thumb
Illustration du fonctionnement de l'algorithme de Savistky-Golay sur le lissage d'un signal bruité représentant des pics.
Remove ads

Choix des paramètres

Dans la pratique :

  • un polynôme de degré 2 permet de prendre en compte la courbure ; un polynôme de degré 3 permet de prendre en compte des points d'inflexion ; il est rarement nécessaire d'aller au-delà ;
  • le nombre de points d'un intervalle doit être suffisamment grand devant le degré du polynôme pour que le lissage soit effectif ; s'ils sont égaux, le polynôme passe exactement par tous les points de l'intervalle, il n'y a donc pas de lissage.

On prend donc en général un polynôme de degré 3 et une fenêtre glissante d'au moins 5 points.

Plus la fenêtre est large, plus la courbe est lissée, mais plus on atténue les variations de petite longueur d'onde. La largeur limite est de l'ordre de la longueur d'onde des détails que l'on veut conserver. Si par exemple on s'intéresse à des pics — cas très fréquents en spectrométrie et en diffractométrie —, on prend en général pour largeur de fenêtre la largeur à mi-hauteur du pic le plus fin.

Remove ads

Cas d'un pas constant

Résumé
Contexte

Concrètement, les coefficients de la régression polynomiale sont calculés par une combinaison linéaire des points de l'intervalle glissant. La valeur lissée, et les valeurs des dérivées, sont donc elles-mêmes des combinaisons linéaires :

 ;
 ;

Si le pas h = xixi - 1 est constant[2], les coefficients bk, b'k, sont les mêmes partout ; on se retrouve dans le cas d'un filtre à réponse impulsionnelle finie (filtre RIF). On peut donc déterminer au départ les coefficients bk, b'k, …, ce qui fournit un algorithme rapide et facile à mettre en œuvre — par exemple avec un tableur ; on parle alors de coefficients de convolution.

Dans ces conditions, on trouve que :

  • le lissage est identique que l'on utilise un polynôme de degré 2 (quadratique) ou 3 (cubique) ;
  • la dérivation est identique que l'on utilise un polynôme de degré 3 (cubique) ou 4 (« quartique ») ;
  • la dérivée seconde est identique que l'on utilise un polynôme de degré 4 (« quartique ») ou 5 (« quintique ») ;
  • les coefficients sont symétriques ou anti-symétriques, selon l'ordre de dérivation :
bk = b2k ; b'k = –b'2k ; …
  • on a toujours b' = 0 : le point yi ne contribue pas au calcul de y'liss i.

Les valeurs des coefficients sont tabulées pour des tailles de fenêtre (intervalle glissant) données. Par exemple, pour une fenêtre de 5 points et un polynôme de degré 3 :

 ;
 ;
.

Les tableaux ci-dessous donnent les coefficients de convolution pour des degrés de polynôme et des largeurs de fenêtre données.

Davantage d’informations Degré, 2/3 (quadratique/cubique) ...
Davantage d’informations Degré, 2 (quadratique) ...

Remarque : la normalisation utilise le pas d'échantillonnage h.

Davantage d’informations Degré, 2/3 (quadratique/cubique) ...
Remove ads

Calcul des coefficients de convolution

Résumé
Contexte

On se place en un point k donné. Les coordonnées du point expérimental sont (xk, yk).

Pour déterminer les coefficients de corrélation, on effectue un changement de variable afin d'avoir une abscisse centrée réduite — c'est-à-dire que l'intervalle sur lequel on effectue la régression devient [– ; ] : on pose

  • x est la moyenne des valeurs de x sur l'intervalle [xk ; xk + ] considéré, c'est le centre de la fenêtre ;
  • h est le pas d'échantillonnage (distance entre deux points voisins).

L'abscisse z prend les valeurs (– ; – + 1 ; … ; –1 ; 0 ; 1 ; … ). Par exemple, pour une fenêtre glissante de 5 points, on a (zi)1 ≤ i ≤ 5 = (–2 ; –1 ; 0 ; 1 ; 2).

Le polynôme de degré d s'exprime alors sous la forme :

Considérons la fonction vectorielle

avec

Sa matrice jacobienne s'écrit

La solution des équations normales

est donc

La valeur de la courbe lissée est la valeur du polynôme au centre de l'intervalle :

 ;

Pour les dérivées successives :

 ;
.

Par exemple, pour un polynôme de degré d = 3 et une fenêtre de 5 points, donc = 2 :

.

On a donc :

 ;
 ;
.
Remove ads

Notes et références

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads