En raison de la façon dont le filtre Savitzky-Golay est dérivé (c'est-à-dire sous forme d'ajustements polynomiaux des moindres carrés locaux), il y a une généralisation naturelle à l'échantillonnage non uniforme - c'est juste beaucoup plus cher en termes de calcul.
Filtres Savitzky-Golay en général
Pour le filtre standard, l'idée est d'adapter un polynôme à un ensemble local d'échantillons [en utilisant les moindres carrés], puis de remplacer l'échantillon central par la valeur du polynôme à l'indice central (c'est-à-dire à 0). Cela signifie que les coefficients de filtre SG standard peuvent être générés en inversant une matrice Vandermonde d'indices d'échantillon. Par exemple, pour générer un ajustement parabolique local sur cinq échantillons (avec les indices locaux -2, -1,0,1,2), le système d'équations de conception A c = y serait le suivant:y0… Y4A c = y
⎡⎣⎢⎢⎢⎢⎢⎢⎢-20-10001020-21-11011121-22-12021222⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢c0c1c2⎤⎦⎥= ⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
c0… C2c0+ c1x + c2X2x = 0c0c = ( ATA )- 1UNETy ) produira les coefficients du filtre SG dans la ligne supérieure. Dans ce cas, ils seraient
⎡⎣⎢c0c1c2⎤⎦⎥= ⎡⎣⎢- 3- 7512- 4- 3170- 5124- 3- 3sept5⎤⎦⎥⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
c0+ c1x + c2X2c1+ 2 c2Xc1 ) sera un filtre dérivé lissé. Le même argument s'applique aux lignes successives - elles donnent des dérivées d'ordre supérieur lissées. Notez que j'ai redimensionné la matrice de 35 afin que la première ligne corresponde aux coefficients de lissage donnés sur Wikipedia (ci-dessus). Les filtres dérivés diffèrent chacun par d'autres facteurs d'échelle.
Échantillonnage non uniforme
Xntn0
t- 2t- 1t0t1t2= x- 2- x0= x- 1- x0= x0- x0= x1- x0= x2- x0
alors chaque matrice de conception aura la forme suivante:
A = ⎡⎣⎢⎢⎢⎢⎢⎢⎢t0- 2t0- 1t00t01t02t1- 2t1- 1t10t11t12t2- 2t2- 1t20t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥= ⎡⎣⎢⎢⎢⎢⎢⎢⎢11111t- 2t- 10t1t2t2- 2t2- 10t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥.
UNE c0