Lissage_sg3_anim.gif (610 × 460 pixels, bestandsgrootte: 68 kB, MIME-type: image/gif, herhalend, 46 frames, 18 s)

Beschrijving

Beschrijving
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).
  • Courbe bleue : données brutes ;
  • rond bleu : point après lissage ;
  • courbe jaune : polynôme utilisé pour déterminer le point courant ;
  • courbe rouge : polynôme restreint à la fenêtre autour du point déterminé.
English: Smoothing of noisy data by the Savitzky-Golay method (3rd degree polynomial, 9 points wide sliding window).
  • Blue curve: raw data;
  • blue circle: point after smoothing;
  • yellow curve: polynomial used to determine the current point;
  • red curve: polynomial restricted to the sliding window around the current point.
Datum
Bron Eigen werk
Auteur Cdang

Scilab source

// **********
// 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);

Licentie

Ik, de auteursrechthebbende van dit werk, maak het hierbij onder de volgende licentie beschikbaar:
w:nl:Creative Commons
naamsvermelding Gelijk delen
Dit bestand is gelicenseerd onder de Creative Commons-licentie Naamsvermelding-Gelijk delen 3.0 Unported
De gebruiker mag:
  • Delen – het werk kopiëren, verspreiden en doorgeven
  • Remixen – afgeleide werken maken
Onder de volgende voorwaarden:
  • naamsvermelding – U moet op een gepaste manier aan naamsvermelding doen, een link naar de licentie geven, en aangeven of er wijzigingen in het werk zijn aangebracht. U mag dit op elke redelijke manier doen, maar niet zodanig dat de indruk wordt gewekt dat de licentiegever instemt met uw werk of uw gebruik van zijn werk.
  • Gelijk delen – Als u het materiaal remixt, transformeert of erop voortbouwt, moet u uw bijdragen verspreiden onder dezelfde licentie als die van het origineel, of een licentie die daarmee verenigbaar is.

Bijschriften

Beschrijf in één regel wat dit bestand voorstelt
smoothing of noisy data

Items getoond in dit bestand

beeldt af

Bestandsgeschiedenis

Klik op een datum/tijd om het bestand te zien zoals het destijds was.

Datum/tijdMiniatuurAfmetingenGebruikerOpmerking
huidige versie29 jan 2013 10:57Miniatuurafbeelding voor de versie van 29 jan 2013 10:57610 × 460 (68 kB)CdangUser created page with UploadWizard

Dit bestand wordt op de volgende pagina gebruikt:

Globaal bestandsgebruik

De volgende andere wiki's gebruiken dit bestand:

Metadata