Lissage_sg3_anim.gif
Summary
Description Lissage sg3 anim.gif |
Français :
Lissage de données bruitées par la méthode de Savitzky-Golay (polynôme de degré 3, fenêtre glissante de 9 points).
English:
Smoothing of noisy data by the Savitzky-Golay method (3
rd
degree polynomial, 9 points wide sliding window).
|
Date | |
Source | Own work |
Author | Cdang |
Scilab source
This media was created with
Scilab
, a free open-source software.
Here is a listing of the Scilab source used to create this file. |
// **********
// Constantes et initialisation
// **********
clear;
clf;
chdir("monchemin\")
// paramètres du lissage :
largeur = 9; // largeur de la fenêtre glissante (nb de pts)
// **********
// Fonctions
// **********
// polynôme de degré 3
function [y]=poldegtrois(A, x)
// méthode de Horner
y = ((A(1).*x + A(2)).*x + A(3)).*x + A(4);
endfunction
// régression avec le polynôme de degré 3
function [A]=regression(X, Y)
// X et Y : vecteurs colonne de 9 valeurs ;
// détermine le polynôme de degré 3
// a*x^2 + b*x^2 + c*x + d
// par régression sur (X, Y)
XX = [X.^3; X.^2; X];
[a, b, sigma] = reglin(XX, Y);
A = [a, b];
endfunction
// lissage, détermination de la dérivée et de la dérivée seconde
function [y, yprime, yseconde] = savitzkygolay(X, Y, larg)
// X, Y : nuage de points
// larg : largeur de fenêtre
n = size(X, "*");
decalage = floor(larg/2);
y = Y;
yprime = zeros(Y);
yseconde = yprime;
for i=(decalage+1):(n-decalage)
intervX = X((i-decalage):(i+decalage),1);
intervY = Y((i-decalage):(i+decalage),1);
Aopt = regression(intervX', intervY');
x = X(i);
y(i) = poldegtrois(Aopt,x);
// running plot and picture saving to be introduced
yprime(i) = (3*Aopt(1)*x + 2*Aopt(2))*x + Aopt(3); // Horner
yseconde(i) = 6*Aopt(1)*x + 2*Aopt(2);
end
endfunction
// **********
// Programme principal
// **********
// lecture des données
donnees = read("mes_donnees.txt", -1, 2)
Xinit = donnees(:,1);
Yinit = donnees(:,2);
// Traitement des données
[Yliss, Yprime, Yseconde] = savitzkygolay(Xinit, Yinit, largeur);
Licensing
I, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the
Creative Commons
Attribution-Share Alike 3.0 Unported
license.
-
You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
-
Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.