A causa del modo in cui il filtro Savitzky-Golay viene derivato (ovvero come accoppiamenti polinomiali dei minimi quadrati locali), c'è una generalizzazione naturale al campionamento non uniforme - è solo molto più computazionalmente costoso.
Filtri Savitzky-Golay in generale
Per il filtro standard, l'idea è di adattare un polinomio a un set locale di campioni [usando il minimo numero di quadrati], quindi sostituire il campione centrale con il valore del polinomio nell'indice centrale (cioè a 0). Ciò significa che i coefficienti di filtro SG standard possono essere generati invertendo una matrice Vandermonde di indicazioni campione. Ad esempio, per generare un adattamento parabolico locale su cinque campioni (con indicazioni locali -2, -1,0,1,2), il sistema di equazioni di progetto A c = y sarebbe il seguente:y0…y4Ac=y
⎡⎣⎢⎢⎢⎢⎢⎢⎢−20−10001020−21−11011121−22−12021222⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢c0c1c2⎤⎦⎥=⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
c0…c2c0+c1x+c2x2x=0c0c=(ATA)−1ATy
⎡⎣⎢c0c1c2⎤⎦⎥=⎡⎣⎢−3−7512−4−3170−5124−3−375⎤⎦⎥⎡⎣⎢⎢⎢⎢⎢⎢y0y1y2y3y4⎤⎦⎥⎥⎥⎥⎥⎥.
c0+c1x+c2x2c1+2c2xc1
Campionamento non uniforme
xntn0
t−2t−1t0t1t2=x−2−x0=x−1−x0=x0−x0=x1−x0=x2−x0
quindi ogni matrice di progettazione avrà la seguente forma:
A=⎡⎣⎢⎢⎢⎢⎢⎢⎢t0−2t0−1t00t01t02t1−2t1−1t10t11t12t2−2t2−1t20t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢11111t−2t−10t1t2t2−2t2−10t21t22⎤⎦⎥⎥⎥⎥⎥⎥⎥.
The first row of the pseudoinverse of A dotted with the local sample values will yield c0, the smoothed value at that sample.