Debido a la forma en que se deriva el filtro Savitzky-Golay (es decir, como ajustes polinomiales de mínimos cuadrados locales), existe una generalización natural al muestreo no uniforme: es mucho más costoso desde el punto de vista computacional.
Filtros Savitzky-Golay en general
Para el filtro estándar, la idea es ajustar un polinomio a un conjunto local de muestras [usando mínimos cuadrados], luego reemplazar la muestra central con el valor del polinomio en el índice central (es decir, en 0). Eso significa que los coeficientes de filtro SG estándar pueden generarse invirtiendo una matriz de Vandermonde de indicios de muestra. Por ejemplo, para generar un ajuste parabólico local en cinco muestras (con las indicaciones locales -2, -1,0,1,2), el sistema de ecuaciones de diseño A c = y sería el siguiente:y0…y4Ac=y
⎡⎣⎢⎢⎢⎢⎢⎢⎢−20−10001020−21−11011121−22−12021222⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢c0c1c2⎤⎦⎥=⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
En lo anterior, los son los coeficientes desconocidos del polinomio de mínimos cuadrados c 0 + c 1 x + c 2 x 2 . Dado que el valor del polinomio en x = 0 es solo c 0 , calcular el pseudoinverso de la matriz de diseño (es decir, c = ( A T A ) - 1 A T y ) arrojará los coeficientes del filtro SG en la fila superior. En este caso, seríanc0…c2c0+c1x+c2x2x=0c0c=(ATA)−1ATy
⎡⎣⎢c0c1c2⎤⎦⎥=⎡⎣⎢−3−7512−4−3170−5124−3−375⎤⎦⎥⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
c0+c1x+c2x2c1+2c2xc1
Muestreo no uniforme
xntn0
t−2t−1t0t1t2=x−2−x0=x−1−x0=x0−x0=x1−x0=x2−x0
entonces cada matriz de diseño tendrá la siguiente forma:
A=⎡⎣⎢⎢⎢⎢⎢⎢⎢t0−2t0−1t00t01t02t1−2t1−1t10t11t12t2−2t2−1t20t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢11111t−2t−10t1t2t2−2t2−10t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥.
A c0