Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Savitzky-Golay
Jaime
3 de noviembre de 2015
1. Definición
Desarrollaremos los operadores de filtrado, integración y derivación tipo Savitzky-
Golay desde punto de vista de un ajuste por mínimos cuadrados de polinomios de
grado arbitrario en segmento de la señal.
Supongamos que tenemos un cierto número n (impar) de puntos muestrales pertene-
cientes a una señal. Usaremos la notación x = {xi−(n−2)/2 , ..., xi−2 , xi−1 , xi , xi+1 , xi+2 , ..., xi+(n−1)/2 }T ,
intentamos interpolar estos puntos mediante polinomios.
g
cj k j
X
x̂ = (1)
j=0
c0
c1
g c2
i+k = c0 k 0 + c1 k 1 + c2 k 2 + ... + cg k g = 0 1 2
[k , k , k , ..., k ]
.
..
cg
1
(− n−1 )0 (− n−1 )1 (− n−1 )2 . . . (− n−1 )g
x̂i−(1−n)/2 2 2 2 2
.. .. .. .. ..
c0
.. . . . . .
.
g c1
(−1)0 (−1) 1
(−1)2 ... (−1)
x̂i−1
g
c
00 01 02
x̂
= ... 0 ∗
2
..
i+1 g
..
10 11 12 ... 1 .
.. .. .. .. ..
.
c
. . . . .
g
x̂i+(n−1)/2
( n−1
2
)0
( n−1 1
2
) ( n−1 2
2
) . . . ( n−1
2
)g
e = x − Sc (4)
Y el error cuadrático promedio será la norma de este vector devidida entre el número
de muestras
1 T
J=
e e (5)
n
Tomando este valor escalar como función objetivo para la optimización, debemos
igualar a cero la derivada de este escalar con respecto a cada uno de los parámetros
que representan las componentes del vector c. Para calcular esta derivada realizamos
el producto escalar:
1 1
J= (x-ScT )(x-Sc) = (xT − cT ST )(x-Sc) (6)
n n
Entonces, tomando la derivada e igualando a cero:
∂J
= −2ST x + 2ST Sc = 0 = −2ST (x-Sc) (7)
∂c
De hecho, resolviendo esta ecuación para las incógnitas, obtenemos c, obtenen-
mos el polinomio óptimo para las n muestras:
2
Los valores interpolados se obtienen como:
B = S(ST S)−1 ST = SGT = GST = [b− n−1 .... b−b b0 b1 ... b n−1 ] (12)
2 2
Con esta matriz se obtiene una señal filtrada x̂ que representa la interpolación de la
señal original mediante polinomios de grado g
3
Evaluando la derivada en el primer punto a la derecha del punto medio, es decir
para k = 1, obtenemos los siguientes operadores de derivación no centrados:
dx̂i+k 0
|k=1 = x̂i+1 (18)
dk
0
x̂i+1 = (gT1 + 2gT2 + 3gT3 + 4gT4 + ... + ggTg )x
00
x̂i+1 = (2(1)gT1 + 3(2)gT2 + 4(3)gT3 + ... + g(g − 1)gTg )x
000
x̂i+1 = (3(2)(1)gT1 + 4(3)(2)gT2 + ... + g(g − 1)(g − 2)gTg )x
x̂m T T T
i+1 = (4(3)(2)(1)g1 + 5(4)(3)(2)g2 + ... + g(g − 1)(g − 2)(g − 3)gg )x
(19)
(20)
4
Referencias