Está en la página 1de 5

Operadores de Filtros, Integradores y Derivadores

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

minimizando el error cuadrático promedio a través de los coeficientes cj . Debe no-


tarse que estamos tomando como variable independiente el conjunto de los enteros
Z. Los resultados serán válidos para series con intervalos regulares de cualquier
magnitud, simplemente multiplicado por dicha magnitud. Esta interpolación puede
interpretarse como un producto escalar de dos vectores en un espacio de dimensión
g igual al grado de polinomio:

 
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

De modo que el conjunto de n valores interpolados puede escribirse como un


producto matricial:

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

Es evidente que, escogiendo el número de puntos y el grado del polinomio, la ma-


triz de lado derecho queda completamente definida (con n filas y g + 1 columnas ).
Sea S la matriz de Savitzky. Designemos el vector coeficiente del polinomio median-
te c. El error cometido en las n muestras es evidentemente un vector de dimensión n:

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:

0 = −2ST (x-Sc)c = (ST S)−1 ST x (8)

Definimos la matriz que multiplica al vector x en la ecuación anterior como la


transpuesta de la matriz de Golay,es decir:

GT = (ST S)−1 ST ó G = S(ST S)−1 (9)


También puede decirse que la matriz de Golay es la transpuesta de la pseudo-
inversa de Moore-Penrose de la matriz de Savitzky. Se debe notar que esta matriz
tiene n filas y g + 1columnas al igual que la matriz de Savitzky.
Los coeficientes de la interpolación se expresan mediante la columnas de esta matriz
y los datos muestrales como:

G = [g0 g1 ... gg ] → c = GT x → ci = gTi x (10)

2
Los valores interpolados se obtienen como:

x̂ = Sc = S(ST S)−1 ST x (11)


Por lo tanto, definimos la matriz de Savitzky-Golay 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

2. Operadores de Filtros de Savitzky-Golay


Las columnas de la matriz de Savitzky-Golay se denominan filtro de ancho n
y grado g, en efecto, tomando la columna central tenemos como aproximación al
punto que está en el centro de la muestra:

x̂i = bT0 x (13)


Es decir, sustituyendo el punto central de la serie de muestras xi por el va-
lor interpolado x̂i y repitiendo este procedimiento para todos los datos muestrales,
obtendremos una nueva serie que, por definición, será la señal filtrada. De igual for-
ma podrían utilizarse valores no centrados multiplicando por otras columnas de la
matriz de Savitsky – Golay:

x̂i+k = bTk x (14)


Estos valores no centrados son útiles para filtrar los transitorios al inicio o al
final de la señal. Es decir, si tenemos una señal con un gran número de puntos N y
escogemos una ventana con 17 puntos (el vector x tiene 17 componentes) podemos
usar la columna bT0 para filtrar los puntos del número 8 =(17-1)/2 hasta el punto
N − 8 únicamente. Si estamos interesados en obtener al final del proceso de filtrado
una señal de la misma longitud N , podemos usar las columnas bTk , con k = −8 a
−1, para los primeros 8 puntos y las columnas bTk , con k=1 a 8, para los últimos 8
puntos.

3. Operadores de Derivación de Savitzky-Golay


Derivando sucesivamente el polinomio de interpolación y evaluándolo en k = 0
obtenemos:
dx̂i+k 0
|k=0 = x̂i (15)
dk
0 00 000
x̂i = c1 , x̂i = 2(1)c2 , x̂i = 3(2)(1)c3 ; x̂m
i = m!cm (16)
De este modo, observamos que las columnas de la matriz de Golay serán los
operadores de derivación en el punto medio de la muestra (con el coeficiente m!):
0 00 000
x̂i = gT1 x, x̂i = 2gT2 x, x̂i = 3!gT3 x; x̂gi = g!gTg x
(17)

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)

Al despejar la ecuación (20) se obtiene la reflectancia en la superficie terrestre del


objeto de interés ρo . A esta operación se le denomina corrección atmosférica.

4
Referencias

También podría gustarte