SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
COMPRESIÓN DE DATOS HISTÓRICOS MEDIANTE LA TRANSFORMADA WAVELET. 
Rafael Trujillo Codorníu1, Yasmany Pérez Pérez 2 
1 Instituto Superior Minero Metalúrgico, Las Coloradas s/n, Moa, Holguín, rafaeltc@uci.cu 
2 Universidad de Ciencias Informáticas, Carr. San Antonio de los Baños, km 2,5. yyperez@estudiantes.uci.cu 
Abstract ⎯ Process data stored from SCADA, in the form of high fidelity time trends, are a resource for data-driven process analyses such as statistical monitoring, minimum variance control loop benchmarking and fault detection. Compression allows retain more details of historical data and for longer periods of time. In this paper, we propose a wavelet coder of historical analog data based on the Set Partitioning in Hierarchical Trees (SPIHT) compression algorithm. The stored data points are, in fact, a quality-time- value trio so we will treat each component as separate data source. Experiments on selected records revealed that the proposed codec is efficient in compression. The coder also attains exact bit rate control and generates a bit stream progressive in quality or rate. 
Index Terms ⎯ Compression, Historical data, SCADA, SPIHT, Wavelet. 
INTRODUCCIÓN 
El servidor de datos históricos es uno de los componentes críticos de un sistema de supervisión y control de procesos. Esencialmente responde por el almacenamiento y recuperación de una base de datos formada por registros que contienen 4 campos: el identificador de la variable a que se refiere el registro, el instante de tiempo en que se efectuó la medición, el valor tomado por esa variable en el instante de tiempo mencionado y la calidad del dato. Esta base de datos es un insumo para muchos otros procesos de análisis, tales como los subsistemas de reportes, monitoreo estadístico, ajuste de lazos de control, detección de fallas, diagnóstico de averías, minería de datos, etc. 
El diseño de la Base de Datos Histórica (BDH) de un SCADA está sometido a requerimientos de naturaleza contradictoria que se relacionan todos con el gran volumen de información que es necesario almacenar. Por un lado debe ser capaz de aceptar la adición de nuevos registros en tiempo real y debe ser capaz de ejecutar consultas que involucren un número significativo de datos en un tiempo aceptable para los usuarios. Es fácil ver que la implementación natural de la base de datos con los cuatro campos mencionados necesitaría de al menos 18 bytes por registro, lo que en un sistema que mida solo 3000 variables analógicas con un período de muestreo de 1 segundo implicaría la generación de 4,5 GB diarios de información. Esta cantidad es excesiva para muchos ordenadores y afectaría las capacidades de respuesta a las solicitudes de los clientes. 
Es por esta consideración que en muchos sistemas de supervisión se utilizan diferentes esquemas de compresión para los datos históricos. Esto ofrece varias ventajas, entre las que se encuentran la disminución del tiempo de E/S y el ahorro de espacio en los medios de almacenamiento masivo. El uso eficiente de éstos es importante aún con las grandes capacidades que ofrecen los discos actuales. 
La compresión de datos tiene, sin embargo, costos ocultos si los datos resultan inutilizables para los propósitos deseados. 
Algunos sistemas, para evadir la compresión, optan por almacenar los datos puntuales sólo por un período relativamente corto (días) y a mas largo plazo guardar solamente los valores promediados en cierto intervalo (hora, turno, día o semana). Sin embargo, puede apreciarse que esto, en esencia, es un mecanismo de compresión con una gran pérdida de información 
En el presente trabajo se propone un esquema para el almacenamiento de los datos históricos de variables analógicas basado en la transformada wavelet y en la codificación del vector de coeficientes resultante mediante el algoritmo de particionado en árboles jerárquicos SPIHT. Este esquema permite un análisis multiresolución de los datos que posibilita ir pasando desde un alto nivel de detalle en el comportamiento de las variables hasta el almacenamiento de solo tendencias generales. 
ALGUNOS ESQUEMAS DE COMPRESIÓN DE HISTÓRICOS 
La compresión de datos se define como el proceso de reducir la cantidad de datos necesarios para reproducir eficazmente una información, es decir, la eliminación de datos redundantes. La operación de restaurar la señal original de los datos comprimidos es llamada reconstrucción Hay dos tipos de compresión: la compresión sin pérdida y la compresión con pérdida. En el primer caso el interés es reconstruir los datos de manera exacta sin pérdida de información. En el segundo caso se puede aceptar cierto error siempre y cuando la calidad (medida por algún criterio) de la reconstrucción sea aceptable. 
Las necesidades de la telemetría espacial motivaron a los investigadores a analizar la compresión de datos de campo desde los años 60 y 70 del siglo pasado. A principios de los 80, Hale y Sellars [1] describieron los algoritmos de
compresión “Boxcar” y “Backward slope” que han sido usados en el tratamiento de históricos [2, 3]. Mas recientemente se popularizaron los algoritmos tipo "Swinging Door" [4]. 
Estos algoritmos se basan esencialmente en la predicción de los valores que “deben” tomar las variables, a partir de los valores anteriormente tomados por la misma. Si la medición arroja un valor que coincide (con una precisión prefijada) con la predicción realizada (para esa variable y en ese instante de tiempo) se asume que esa medición no arroja información nueva y por tanto su valor se desprecia (opcionalmente se desprecia también la marca de tiempo). Como muchas variables industriales tienen variaciones lentas y, por tanto, coeficientes de auto correlación altos, este esquema logra una buena compresión de los archivos históricos y resulta suficientemente rápido como para que la compresión se pueda efectuar en tiempo real. En la práctica para la predicción se usa el valor anterior o los últimos dos valores solamente. Estos métodos usan esencialmente la extrapolación. 
A modo de ejemplo se muestran los seudo códigos del algoritmo “Boxcar” (usado actualmente por el SCADA cubano “EROS” [12]) y del algoritmo Backward slope [1]. 
ALGORITMO “BOXCAR” 
IF (el valor del punto actual difiere del ultimo 
valor salvado en más de max_dev) 
THEN 
{ 
IF (punto anterior ≠ ultimo punto salvado) 
THEN {salvar el punto anterior} 
ELSE {salvar el punto actual} 
} 
ALGORITMO “BACKWARD SLOPE” 
Estimar el valor actual de la variable por extrapolación lineal 
a partir de los dos últimos valores salvados. 
IF (el valor del punto actual difiere del 
valor estimado en más de max_dev) 
THEN 
{ 
IF (punto anterior ≠ ultimo punto salvado) 
THEN {salvar el punto anterior} 
ELSE {salvar el punto actual} 
} 
En [13] se hace un excelente análisis de los efectos de estos algoritmos de compresión. Algunos de los elementos que se mencionan los enumeramos a continuación: 
1. Si se desea alta fidelidad en los datos los niveles de compresión son muy bajos. 
2. Las propiedades estadísticas de las señales pueden ser alteradas. En particular los valores medios de la señal original y de la reconstruida pueden ser diferentes. Lo mismo ocurre con la integración. La varianza de la señal reconstruida es siempre menor que la varianza de la señal original. Esto puede tener implicaciones serias en aplicaciones tales como balances de masas. 
3. La reconstrucción puede omitir eventos de interés en la señal, o generar eventos falsos. Por ejemplo pueden no mostrarse adecuadamente extremos locales de la señal y generarse falsos extremos en la reconstrucción. 
4. Cuando se decide no almacenar un punto, por no ser significativo, se pierde toda la información del mismo (incluyendo su marca de tiempo). Sin embargo, en ocasiones, la información de en que momento se efectuó la medición es necesaria, independientemente de si el valor resultó significativo o no. 
5. La obtención de un juego de datos con menor grado de detalle (y mayor tasa de compresión) requiere la descompresión de los datos y la repetición de la compresión con los nuevos parámetros. 
WAVELETS 
Las técnicas de compresión pues ser divididas en dos grandes grupos funcionales: los métodos directos y los métodos sobre transformadas. Los métodos mencionados anteriormente clasifican en los métodos directos pues ellos pueden ser aplicados en tiempo real sobre los datos. La compresión en estos casos se efectúa “al vuelo” a medida que se obtienen los datos del campo. 
Los métodos sobre transformadas realizan una transformación integral previa del conjunto original de datos. La compresión no se realiza sobre los datos originales, sino sobre los datos transformados. No se aplican a medida que se obtienen los valores del campo ya que requieren de un conjunto de datos determinado. Un ejemplo de este tipo de método es la compresión con wavelets. . 
La Transformada Wavelet, más conocida por su nombre en inglés, Discrete Wavelet Transform (DWT), es una herramienta matemática de reciente desarrollo que permite descomponer una señal no sólo en componentes frecuenciales sino también en componentes espaciales. La DWT, aplicada sobre un arreglo de datos típico, lo convierte en un arreglo en el cual la energía se concentra en solo unos pocos coeficientes. Como los demás coeficientes son pequeños pueden codificarse con muy pocos bits. Por ello se obtienen tasas de compresión muy altas conservando, al mismo tiempo, una buena calidad en la reconstrucción de la señal. 
Existen múltiples enfoques para la definición de los wavelets. Expondremos el que requiere menos prerrequisitos y que se basa en el esquema “lifting” [8, 9]. 
En el caso más simple, el esquema “lifting” consta de tres fases: división (Split), predicción y actualización. La idea básica es la siguiente: Supongamos se comienza con un conjunto de datos al que nos referiremos como {}1100,,,−=NxxxXK. En la primera fase del algoritmo se divide este conjunto en dos subconjuntos y . Aquí usamos subíndices negativos siguiendo la convención eX1− oX1−
que mientras más pequeños sean los subconjuntos menores serán los subíndices. Nos referiremos a como el subconjunto wavelet. No existe ninguna restricción sobre la manera en que se efectúa esta división pero usualmente está compuesto por los elementos de con subíndice par y a lo integran los elementos con subíndice impar. En la fase de predicción tratamos de predecir los elementos de a partir de los elementos de usando la correlación presente en los datos originales. Si los datos del conjunto están altamente correlacionados es posible esperar que, por ejemplo, a partir de los valores y se pueda obtener una buena aproximación del valor de . oX1− eX1−0XoX1− oX1− eX1− 0X2x4x3x 
Si pudiéramos encontrar un operador de predicción P, independiente de los datos y que garantice que = entonces pudiéramos reemplazar el conjunto 0X por el conjunto eX1− puestoe podemos predecir la parte faltante para reconstruir 0X. oX1−)(1eXP− 
La construcción de este operador de predicción se basa, típicamente, en algún modelo sobre los datos que refleje su estructura de correlación. 
Obviamente, en la práctica es imposible lograr una predicción exacta que sea independiente de los datos iniciales. Sin embargo si es suficientemente cercano a podríamos reemplazar cada elemento de por la diferencia entre su valor y la predicción del mismo. Es decir (simbólicamente): )(1eXP− oX1− oX1− 
oX1−:=− oX1−)(1eXP− 
Si la predicción es razonable esta diferencia contiene mucha menos información que el conjunto original. 
El subconjunto wavelet ahora codifica en que medida los datos se desvían del modelo a partir del cual se construyó el operador P. 
En la fase de actualización se trata de que algunas propiedades globales de los datos del conjunto original se conserven en el conjunto más pequeño . Por ejemplo en el caso de imágenes pudiéramos exigir que la imagen más pequeña tenga el mismo brillo que la original. En el caso de señales pudiera exigirse la conservación de un número determinado de momentos. 0XeX1− 
Para ello se construye el operador U y se actualizan los valores de los elementos de de manera que (ver Figura 1): :=+ eX1− eX1− eX1−)(1oXU− FIGURA. 1 
FASES DEL ESQUEMA “LIFTING”: DIVISIÓN, PREDICCIÓN Y ACTUALIZACIÓN 
Este esquema puede ser iterado. Dividimos en dos subconjuntos y y reemplazamos por la diferencia entre y . Luego de pasos obtenemos que el conjunto original puede ser reemplazado por su representación wavelet: eX1− eX2− oX2− oX2− oX2−)(2eXP−n 
{}oononenXXXX11,,,,−+−−−K 
Si el modelo de predicción empleado es exitoso la energía del vector obtenido se concentra en . Los coeficientes wavelets que pertenecen a alguno de los conjuntos: enX− 
{}oononXXX11,,,−+−−K 
deben ser pequeños y codificables con pocos bits. 
La transformación inversa se obtiene invirtiendo los pasos dados en la transformada directa. En seudo código podríamos escribir (asumiendo x): eXX00= 
TRANSFORMADA WAVELET 
FOR nj−−−=K,2,1 
{ 
( , ) = ; ej Xoj X)(1ej XSplit+ 
:=− ; oj Xoj X)(ej XP 
:=+ ej Xej X)(1oj XU+ 
} 
TRANSFORMADA WAVELET INVERSA 
FOR 1,1,−+−−=Knnj 
{ 
:=− ; ej Xej X)(1oj XU+ 
:=+ ; oj Xoj X)(ej XP 
= , ; ej X1+(Joinej Xoj X) 
}
Para definir la función de predicción se pueden usar polinomios de interpolación cuyos nodos estén distribuidos alrededor del punto a estimar. Por ejemplo, para estimar , se pueden usar los dos valores adyacentes con índice par con los cuales se construye un polinomio de interpolación lineal. 12+kx222,+kkxx 
Después de aplicar la transformada wavelet al conjunto de datos y una vez cuantificados los valores resultantes se utilizan mecanismos de compresión que permitan disminuir al máximo la cantidad de bits necesaria para la codificación de los datos. Se ha usado (por ejemplo en [10]) el algoritmo RLE (Run Length Encoding) para la supresión de las largas cadenas de ceros resultantes de la cuantificación de los coeficientes wavelets pequeños. Uno de los algoritmos que mejores resultados ofrece para la codificación es el algoritmo SPIHT (“Set Partitioning in Hierarchical Trees”) [5]. Este algoritmo ha recibido una aceptación universal en la compresión de imágenes al igual que en la compresión de electrocardiogramas [7] que son señales analógicas que requieren una alta calidad en la reconstrucción para que conserven su valor diagnóstico. El algoritmo basa su funcionamiento en las propiedades estadísticas de los coeficientes wavelet obtenidos luego de aplicar sucesivamente la transformada Wavelet. En particular, se fundamenta en el ordenamiento por la magnitud de éstos y por sus posiciones dentro de la estructura en forma de árbol de la transformada wavelet. Permite la transmisión progresiva de los coeficientes, enviando primero aquellos que tienen mayor relevancia, lo que posibilita detener el algoritmo en un grado de resolución deseado. 
DESCRIPCIÓN DEL ALGORITMO PROPUESTO 
El algoritmo propuesto para la compresión de datos históricos analógicos consta de las siguientes etapas: 
• División del conjunto de datos en bloques. Cada bloque representa el conjunto de datos medidos en un intervalo de tiempo determinado. Contiene el identificador de la variable, la primera marca de tiempo de los datos del bloque, la duración, en milisegundos, del intervalo de tiempo que cubre el bloque, la cantidad de valores agrupados y un campo variable que contiene los valores comprimidos. Los mejores resultados del algoritmo se obtienen si la cantidad promedio de datos en cada bloque es mayor que 256 e inferior a 8192 y si, en lo posible, el número de datos es una potencia de dos. La presencia en el bloque de la marca de tiempo inicial y del intervalo de tiempo que cubre permite determinar fácilmente si el bloque debe ser tratado para el manejo de alguna consulta del usuario. 
• Separación de los datos de cada bloque en tres vectores: el vector de valores; );,,,(110−=nvvvvK 
el vector de marcas de tiempo );,,,(110−=nttttK 
y el vector de calidades: ).,,,(110−=nccccK 
Cada uno será procesado por separado. Estos vectores tienen características diferentes que aconsejan su tratamiento diferenciado. 
• Selección del modelo de transformada a utilizar para el vector de valores. Para esto, con un subconjunto pequeño de valores, se evalúan diferentes funciones de predicción y actualización: tales como la transformada con interpolación (2, 2), la transformada con interpolación (4, 2) y la transformada simétrica biortogonal (9, 7) [8]. En base a los resultados obtenidos en este pequeño subconjunto se decide cual esquema se aplicará a todos los datos. Esta evaluación, que al efectuarse con pocos puntos, no incrementa sustancialmente el tiempo de procesamiento, permite mejorar los resultados del esquema. 
• Aplicación de la transformada Wavelet al vector de valores. A cada elemento se le resta el valor medio de los datos para garantizar que el vector resultante tenga media cero. Esta transformación propicia mejores compresiones en los pasos siguientes. Luego se aplica la transformada wavelet elegida de acuerdo al punto anterior. 
• Cuantificación del vector de coeficientes wavelet con un parámetro configurable. El vector transformado se lleva a un vector de números enteros mediante un proceso de cuantificación. El parámetro de cuantificación usado es dependiente de la variable y debe ser objeto de configuración en el SCADA. 
• Comparación con umbrales. Los coeficientes wavelet cuantificados cuyos valores absolutos sean menores que un umbral configurable son igualados a cero. Este paso permite la eliminación selectiva de ruido en la señal. 
• Codificación del vector resultante con SPIHT. El vector resultante de los pasos anteriores se codifica utilizando el algoritmo SPIHT. Para ello se utiliza opcionalmente una cuota de bits máxima que es dependiente de la variable y debe ser objeto de configuración en el SCADA. 
• Transformación del vector de marcas de tiempo. Las variables de un SCADA se miden generalmente en intervalos periódicos, por tanto es presumible que los valores representen una progresión aritmética, o sea, puedan determinarse con alta precisión de acuerdo a la fórmula: kt
;1,1,0; )1( 010−= − − ⋅+=−nknttkttnkK 
Por ello, el vector de marcas de tiempo se somete a la siguiente transformación: ); 1(~010− − ⋅+−=− nttktttnkk 
Esta transformación debe reducir sustancialmente la norma del vector de marcas de tiempo y provocar que para períodos de muestreos muy exactos el vector resultante sea nulo. Si el vector resultante )~,,~,~( ~ 21nttttK= es nulo (con un margen de tolerancia configurable) no se codifica. Si no es nulo se codifica este vector en el próximo paso. 
• Aplicación de la transformada Wavelet (2, 2) entera al vector de marcas de tiempo. 
• Comparación con umbrales. Los coeficientes wavelets del vector de marcas de tiempo transformado, cuyos valores absolutos sean menores que un umbral configurable, son igualados a cero. 
• Codificación con SPITH del vector entero resultante. 
• Codificación con RLE (Run Length Encoding) del vector de calidades. La calidad es una función que, en el tiempo, es constante a trozos. Usualmente la calidad de los valores se mantiene estable en largos períodos de tiempo lo que facilita su compresión mediante RLE. 
FIGURA. 2 
SECUENCIA DE OPERACIONES EN EL ALGORITMO DE COMPRESIÓN 
El algoritmo propuesto presenta las siguientes ventajas: 
1. La compresión de los datos analógicos lograda mediante la transformada wavelet y SPIHT es, en general, mayor que la lograda por los algoritmos tradicionales. Se logran tasas aceptables de compresión incluso cuando se requieren reconstrucciones sumamente exactas de la señal. 
2. La conservación de momentos que se realiza en la fase de actualización de la DWT posibilita una mejor conservación de las propiedades estadísticas de la señal no sólo con bajas tasas de compresión sino también con altas tasas de compresión. 
3. Control exacto de la compresión. Se puede establecer “a priori” una tasa de bits por muestra. Esto posibilita prefijar el tamaño ocupado por los registros y por los archivos. La tasa de bits puede reducirse en la medida que los datos van envejeciendo, de manera que se pase de un alto nivel de detalle y baja compresión en los datos más recientes a un bajo nivel de detalle y una alta compresión para los datos más antiguos. 
4. La transformación necesaria, del flujo de bits que contiene los datos comprimidos, para pasar a una tasa de bits menor, en la compresión, es simple, debido a las propiedades del algoritmo SPIHT. Esta tarea no requiere una recodificación ya que se reduce a despreciar los últimos bits en los datos comprimidos de los vectores de valores y de marcas de tiempo. 
5. Se conserva la información de la marca de tiempo de cada uno de los puntos capturados independientemente de si son significantivos o no. La conservación de todas las marcas de tiempo ocupa solo una pequeña parte de la cuota de bits de los datos comprimidos debido a la naturaleza lineal de las marcas de tiempo de una variable que se muestrea de manera periódica. 
6. El algoritmo permite la eliminación selectiva del ruido en la señal original. 
7. Es posible mantener el formato de base de dato relacional en la BDH si se utiliza un campo binario variable para el almacenamiento de los vectores comprimidos. 
8. La representación de la señal a partir de su transformada wavelet facilita los procesos de minería de datos [11]. 
RESULTADOS. 
Para evaluar los resultados de la compresión de datos analógicos se han usado datos reales de señales medidas por el Sistema de Supervisión y Control “EROS” [12] en la fábrica de Níquel “René Ramos Latour”. La compresión obtenida respecto a la señal original se evalúa normalmente
por dos parámetros; mediante la tasa de compresión y mediante la distorsión producida al comprimir la señal. 
La tasa de compresión CR se define como: cxLLCR=, 
donde es el tamaño (en bits) de la señal original y el tamaño de la señal comprimida. xLcL 
Por otra parte, la distorsión generada por la compresión (o error de reconstrucción) se evalúa a través de la distorsión residual PRD (Percent Root mean square Difference). La fórmula usada para calcular la distorsión residual es la siguiente: 
ΣΣ= = − − ×=NixiNiiixxxPRD1212)( )( 100 μ ) donde es la señal original, ixix) es la señal reconstruida y xμ es el valor medio de la señal original. 
La primera señal, que llamaremos Señal A y se muestra a modo de ejemplo, está constituida por 1024 puntos tomados a intervalos de 1 segundo. La transformada Wavelet usada para la compresión fue la Biortogonal 9-7. Los resultados para diferentes niveles de compresión se muestran en la siguiente tabla: 
TABLA 1 
RESULTADOS OBTENIDOS EN LA COMPRESIÓN DE LA SEÑAL “A” 
Bits por muestra 
CR 
PRD 
1 bps 
32 
3,771 
2 bps 
16 
1,135 
3 bps 
10,7 
0,720 
4 bps 
8 
0,340 
Se puede apreciar que incluso con tasas sumamente altas de compresión se alcanzan distorsiones residuales bajas. En esto influye la baja relación ruido/señal que presenta este juego de datos. En las figuras 3, 4 y 5 se muestran los gráficos de la señal original y de las reconstrucciones, apreciándose que, a la percepción, la reconstrucción con 1 bps es excelente. 
En todos los casos se calculó la entropía del flujo de bits de salida del SPIHT para evaluar si era factible aplicar un paso adicional con un codificador probabilístico (como el código de Huffman o un codificador aritmético). Los resultados de estas pruebas consistentemente arrojaron que las ganancias en compresión serían mínimas y no compensarían el costo computacional de ese paso adicional. 020040060080010002426283032Señal original 
FIGURA. 3 
GRAFICA DE LA SEÑAL “A” ORIGINAL 
020040060080010002426283032Señal reconstruida 2 bps 
FIGURA. 4 
GRAFICA DE LA SEÑAL “A” RECONSTRUIDA 2BPS 
020040060080010002426283032Señal reconstruida 1 bps 
FIGURA. 5 
GRAFICA DE LA SEÑAL “A” RECONSTRUIDA 1BPS. 
La segunda señal, que llamaremos “B” está constituida por 256 puntos tomados a intervalos de 1 segundo. Esta señal presenta mucha mayor variabilidad y una mayor relación ruido/señal que la señal “A” por lo que la distorsión
residual, para los diferentes niveles de compresión, es mucho mayor. 
Se puede apreciar (ver Figuras 6, 7, 8 y 9) que la señal reconstruida, incluso para tasas altas de compresión, (2 bps) mantiene las características esenciales de la misma, en especial los máximos y mínimos locales de amplitud significativa. El efecto más notable de la compresión es la suavización de la señal con pérdida de armónicos de alta frecuencia. 
TABLA 1 
RESULTADOS OBTENIDOS EN LA COMPRESIÓN DE LA SEÑAL “B” 
Bits por muestra 
CR 
PRD 
1 bps 
32 
34,37 
2 bps 
16 
20,83 
3 bps 
10,7 
14,95 
4 bps 
8 
8, 29 
0501001502002501819202122232425Señal original 
FIGURA. 6 
GRÁFICA DE LA SEÑAL “B” ORIGINAL. 
0501001502002501819202122232425Señal reconstruida 4 bps 
FIGURA. 7 
GRÁFICA DE LA SEÑAL “B” RECONSTRUIDA 4 BPS. 
0501001502002501819202122232425Señal reconstruida 3 bps 
FIGURA. 8 
GRÁFICA DE LA SEÑAL “B” RECONSTRUIDA 3 BPS. 
0501001502002501819202122232425Señal reconstruida 2 bps 
FIGURA. 9 
GRAFICA DE LA SEÑAL “B” RECONSTRUIDA 2 BPS. 
CONCLUSIONES 
Los resultados de las pruebas realizadas muestran que el esquema propuesto para la compresión de históricos proporciona altas tasas de compresión y al propio tiempo buena calidad en la reconstrucción. Permite conservar los parámetros estadísticos básicos de la señal, la calidad de cada valor y, dentro de un rango de tolerancia configurable, conserva todas las marcas de tiempo de los valores medidos. Posibilita además incrementar las tasas de compresión sin necesidad de reprocesar la información lo que permite, disminuir el nivel de detalle en los datos. 
AGRADECIMIENTOS 
Este trabajo ha sido patrocinado de manera directa o indirecta por: 
• Petróleos de Venezuela S.A. (PDVSA) 
• Universidad de Ciencias Informáticas (UCI).
• Grupo de Desarrollo “EROS”, SerCoNi. 
Los autores expresan su agradecimiento a todas las personas de las instituciones mencionadas que han posibilitado la realización de este trabajo. 
REFERENCIAS 
[1] Hale J.C, Sellars H.L, "Historical Data Recording for Process Computers", CEP, Nov., 1981, pp. 38-43. 
[2] Bader F. P., Tucker T. W., "Real-Time Data Compression Improves Plant Performance Assessment ", InTech, August 1987, pp. 53-56 
[3] Kennedy J. P., "Data Storage for CIM", Process Engineering, Feb. 1988, pp. 31-35. 
[4] Bristol E. H., "Swinging Door Trending: Adaptive Trend Recording", ISA National Conf. Proc., 1990, pp. 749-754. 
[5] Said A., Pearlman W., “A New Fast and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 6, June 1996. 
[6] Shapiro J.M., “Embedded image coding using zerotrees of wavelets coefficients”, IEEE Trans. Signal Processing, vol 41, pp 3445-3462, Dec., 1993. 
[7] Lu Zhitao, Kim Dong Youn , Pearlman W., “Wavelet Compression of ECG signals by the Set Partitioning in Hierarchical Trees Algorithm”. IEEE Transactions on Biomedical Engineering, Jul 2000, Vol. 47 Issue 7. 
[8] Sweldens W., “The lifting scheme: A construction of second generation wavelets”, Siam J. Math. Anal, Vol. 29, No. 2, pp 511- 546, 1997. 
[9] Fernandez G., Periaswamy S., Sweldens W., “LIFTPACK: A Software Package for Wavelet Transforms using Lifting”, Wavelet Applications in Signal and Image IV, pp. 396-408, 1996. 
[10] Cárdenas-Barrera J., Lorenzo-Ginori J., Rodríguez Valdivia E. “Algoritmo basado en wavelets packet para la compresión de electroencefalogramas”, Memorias II Congreso Latinoamericano de Ingeniería Biomédica, Habana, Mayo 2001. 
[11] Tao Li, Qi Li, Shenghuo Zhu, Mitsunori Ogihara, “A Survey on Wavelet Applications in Data Mining”, SIGKDD Explorations, Volume 4, Issue 2, 2003 
[12] Grupo de Desarrollo EROS, “Manual del Usuario del EROS versión 5.0”, 2002. 
[13] Thornhill N., Shoukat C. , Shah S. , “The impact of compression on data-driven process analyses”, Journal of Process Control, 14 (2004) 389–398

Más contenido relacionado

Destacado

DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000
Rafa Boix
 
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencialFundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
darg0001
 
Canal de comunicación y caos
Canal de comunicación y caosCanal de comunicación y caos
Canal de comunicación y caos
darg0001
 
Caos y Wavelets
Caos y WaveletsCaos y Wavelets
Caos y Wavelets
darg0001
 
Symbolic dynamics of unimodal maps
Symbolic dynamics of unimodal mapsSymbolic dynamics of unimodal maps
Symbolic dynamics of unimodal maps
darg0001
 
Cuerpos finitos y aplicaciones
Cuerpos finitos y aplicacionesCuerpos finitos y aplicaciones
Cuerpos finitos y aplicaciones
darg0001
 
David arroyo2009 en
David arroyo2009 enDavid arroyo2009 en
David arroyo2009 en
darg0001
 
Aplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de dañosAplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de daños
Javier Gonzales
 

Destacado (8)

DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000
 
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencialFundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
 
Canal de comunicación y caos
Canal de comunicación y caosCanal de comunicación y caos
Canal de comunicación y caos
 
Caos y Wavelets
Caos y WaveletsCaos y Wavelets
Caos y Wavelets
 
Symbolic dynamics of unimodal maps
Symbolic dynamics of unimodal mapsSymbolic dynamics of unimodal maps
Symbolic dynamics of unimodal maps
 
Cuerpos finitos y aplicaciones
Cuerpos finitos y aplicacionesCuerpos finitos y aplicaciones
Cuerpos finitos y aplicaciones
 
David arroyo2009 en
David arroyo2009 enDavid arroyo2009 en
David arroyo2009 en
 
Aplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de dañosAplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de daños
 

Similar a Articulo Wavelet

Diseño fisico
Diseño fisicoDiseño fisico
Diseño fisico
elylupita
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Titiushko Jazz
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Titiushko Jazz
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
kikeMerck
 

Similar a Articulo Wavelet (20)

Arp
ArpArp
Arp
 
histograma - fundibeq.pdf
histograma - fundibeq.pdfhistograma - fundibeq.pdf
histograma - fundibeq.pdf
 
Diseño fisico
Diseño fisicoDiseño fisico
Diseño fisico
 
Modelo de colas M/G/C-FCFS con una política de sistema de inventario de revis...
Modelo de colas M/G/C-FCFS con una política de sistema de inventario de revis...Modelo de colas M/G/C-FCFS con una política de sistema de inventario de revis...
Modelo de colas M/G/C-FCFS con una política de sistema de inventario de revis...
 
Optimizacion en IMRT
Optimizacion en IMRTOptimizacion en IMRT
Optimizacion en IMRT
 
Localizacion sismos fasciculo3
Localizacion sismos fasciculo3Localizacion sismos fasciculo3
Localizacion sismos fasciculo3
 
Hidroesta 2 arequipa perú 2014 (1)
Hidroesta 2 arequipa perú 2014 (1)Hidroesta 2 arequipa perú 2014 (1)
Hidroesta 2 arequipa perú 2014 (1)
 
Elaboración de Espectro de Respuesta basado en Time History
Elaboración de Espectro de Respuesta basado en Time HistoryElaboración de Espectro de Respuesta basado en Time History
Elaboración de Espectro de Respuesta basado en Time History
 
153979591 manual-hidroesta
153979591 manual-hidroesta153979591 manual-hidroesta
153979591 manual-hidroesta
 
Cap. 1, Diseño de mina superficial.pptx
Cap. 1, Diseño de mina superficial.pptxCap. 1, Diseño de mina superficial.pptx
Cap. 1, Diseño de mina superficial.pptx
 
information-12-00499.pdf
information-12-00499.pdfinformation-12-00499.pdf
information-12-00499.pdf
 
Maria jose presentacion
Maria jose presentacionMaria jose presentacion
Maria jose presentacion
 
Martha navarrete metodos deterministicos
Martha navarrete metodos deterministicos Martha navarrete metodos deterministicos
Martha navarrete metodos deterministicos
 
Histogramas
HistogramasHistogramas
Histogramas
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y datamining
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y datamining
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
 
Oracle
OracleOracle
Oracle
 
Presentacion stratagem EH4 EH-4
Presentacion stratagem EH4 EH-4Presentacion stratagem EH4 EH-4
Presentacion stratagem EH4 EH-4
 
Redes neuronales artificiales_aplicadas
Redes neuronales artificiales_aplicadasRedes neuronales artificiales_aplicadas
Redes neuronales artificiales_aplicadas
 

Articulo Wavelet

  • 1. COMPRESIÓN DE DATOS HISTÓRICOS MEDIANTE LA TRANSFORMADA WAVELET. Rafael Trujillo Codorníu1, Yasmany Pérez Pérez 2 1 Instituto Superior Minero Metalúrgico, Las Coloradas s/n, Moa, Holguín, rafaeltc@uci.cu 2 Universidad de Ciencias Informáticas, Carr. San Antonio de los Baños, km 2,5. yyperez@estudiantes.uci.cu Abstract ⎯ Process data stored from SCADA, in the form of high fidelity time trends, are a resource for data-driven process analyses such as statistical monitoring, minimum variance control loop benchmarking and fault detection. Compression allows retain more details of historical data and for longer periods of time. In this paper, we propose a wavelet coder of historical analog data based on the Set Partitioning in Hierarchical Trees (SPIHT) compression algorithm. The stored data points are, in fact, a quality-time- value trio so we will treat each component as separate data source. Experiments on selected records revealed that the proposed codec is efficient in compression. The coder also attains exact bit rate control and generates a bit stream progressive in quality or rate. Index Terms ⎯ Compression, Historical data, SCADA, SPIHT, Wavelet. INTRODUCCIÓN El servidor de datos históricos es uno de los componentes críticos de un sistema de supervisión y control de procesos. Esencialmente responde por el almacenamiento y recuperación de una base de datos formada por registros que contienen 4 campos: el identificador de la variable a que se refiere el registro, el instante de tiempo en que se efectuó la medición, el valor tomado por esa variable en el instante de tiempo mencionado y la calidad del dato. Esta base de datos es un insumo para muchos otros procesos de análisis, tales como los subsistemas de reportes, monitoreo estadístico, ajuste de lazos de control, detección de fallas, diagnóstico de averías, minería de datos, etc. El diseño de la Base de Datos Histórica (BDH) de un SCADA está sometido a requerimientos de naturaleza contradictoria que se relacionan todos con el gran volumen de información que es necesario almacenar. Por un lado debe ser capaz de aceptar la adición de nuevos registros en tiempo real y debe ser capaz de ejecutar consultas que involucren un número significativo de datos en un tiempo aceptable para los usuarios. Es fácil ver que la implementación natural de la base de datos con los cuatro campos mencionados necesitaría de al menos 18 bytes por registro, lo que en un sistema que mida solo 3000 variables analógicas con un período de muestreo de 1 segundo implicaría la generación de 4,5 GB diarios de información. Esta cantidad es excesiva para muchos ordenadores y afectaría las capacidades de respuesta a las solicitudes de los clientes. Es por esta consideración que en muchos sistemas de supervisión se utilizan diferentes esquemas de compresión para los datos históricos. Esto ofrece varias ventajas, entre las que se encuentran la disminución del tiempo de E/S y el ahorro de espacio en los medios de almacenamiento masivo. El uso eficiente de éstos es importante aún con las grandes capacidades que ofrecen los discos actuales. La compresión de datos tiene, sin embargo, costos ocultos si los datos resultan inutilizables para los propósitos deseados. Algunos sistemas, para evadir la compresión, optan por almacenar los datos puntuales sólo por un período relativamente corto (días) y a mas largo plazo guardar solamente los valores promediados en cierto intervalo (hora, turno, día o semana). Sin embargo, puede apreciarse que esto, en esencia, es un mecanismo de compresión con una gran pérdida de información En el presente trabajo se propone un esquema para el almacenamiento de los datos históricos de variables analógicas basado en la transformada wavelet y en la codificación del vector de coeficientes resultante mediante el algoritmo de particionado en árboles jerárquicos SPIHT. Este esquema permite un análisis multiresolución de los datos que posibilita ir pasando desde un alto nivel de detalle en el comportamiento de las variables hasta el almacenamiento de solo tendencias generales. ALGUNOS ESQUEMAS DE COMPRESIÓN DE HISTÓRICOS La compresión de datos se define como el proceso de reducir la cantidad de datos necesarios para reproducir eficazmente una información, es decir, la eliminación de datos redundantes. La operación de restaurar la señal original de los datos comprimidos es llamada reconstrucción Hay dos tipos de compresión: la compresión sin pérdida y la compresión con pérdida. En el primer caso el interés es reconstruir los datos de manera exacta sin pérdida de información. En el segundo caso se puede aceptar cierto error siempre y cuando la calidad (medida por algún criterio) de la reconstrucción sea aceptable. Las necesidades de la telemetría espacial motivaron a los investigadores a analizar la compresión de datos de campo desde los años 60 y 70 del siglo pasado. A principios de los 80, Hale y Sellars [1] describieron los algoritmos de
  • 2. compresión “Boxcar” y “Backward slope” que han sido usados en el tratamiento de históricos [2, 3]. Mas recientemente se popularizaron los algoritmos tipo "Swinging Door" [4]. Estos algoritmos se basan esencialmente en la predicción de los valores que “deben” tomar las variables, a partir de los valores anteriormente tomados por la misma. Si la medición arroja un valor que coincide (con una precisión prefijada) con la predicción realizada (para esa variable y en ese instante de tiempo) se asume que esa medición no arroja información nueva y por tanto su valor se desprecia (opcionalmente se desprecia también la marca de tiempo). Como muchas variables industriales tienen variaciones lentas y, por tanto, coeficientes de auto correlación altos, este esquema logra una buena compresión de los archivos históricos y resulta suficientemente rápido como para que la compresión se pueda efectuar en tiempo real. En la práctica para la predicción se usa el valor anterior o los últimos dos valores solamente. Estos métodos usan esencialmente la extrapolación. A modo de ejemplo se muestran los seudo códigos del algoritmo “Boxcar” (usado actualmente por el SCADA cubano “EROS” [12]) y del algoritmo Backward slope [1]. ALGORITMO “BOXCAR” IF (el valor del punto actual difiere del ultimo valor salvado en más de max_dev) THEN { IF (punto anterior ≠ ultimo punto salvado) THEN {salvar el punto anterior} ELSE {salvar el punto actual} } ALGORITMO “BACKWARD SLOPE” Estimar el valor actual de la variable por extrapolación lineal a partir de los dos últimos valores salvados. IF (el valor del punto actual difiere del valor estimado en más de max_dev) THEN { IF (punto anterior ≠ ultimo punto salvado) THEN {salvar el punto anterior} ELSE {salvar el punto actual} } En [13] se hace un excelente análisis de los efectos de estos algoritmos de compresión. Algunos de los elementos que se mencionan los enumeramos a continuación: 1. Si se desea alta fidelidad en los datos los niveles de compresión son muy bajos. 2. Las propiedades estadísticas de las señales pueden ser alteradas. En particular los valores medios de la señal original y de la reconstruida pueden ser diferentes. Lo mismo ocurre con la integración. La varianza de la señal reconstruida es siempre menor que la varianza de la señal original. Esto puede tener implicaciones serias en aplicaciones tales como balances de masas. 3. La reconstrucción puede omitir eventos de interés en la señal, o generar eventos falsos. Por ejemplo pueden no mostrarse adecuadamente extremos locales de la señal y generarse falsos extremos en la reconstrucción. 4. Cuando se decide no almacenar un punto, por no ser significativo, se pierde toda la información del mismo (incluyendo su marca de tiempo). Sin embargo, en ocasiones, la información de en que momento se efectuó la medición es necesaria, independientemente de si el valor resultó significativo o no. 5. La obtención de un juego de datos con menor grado de detalle (y mayor tasa de compresión) requiere la descompresión de los datos y la repetición de la compresión con los nuevos parámetros. WAVELETS Las técnicas de compresión pues ser divididas en dos grandes grupos funcionales: los métodos directos y los métodos sobre transformadas. Los métodos mencionados anteriormente clasifican en los métodos directos pues ellos pueden ser aplicados en tiempo real sobre los datos. La compresión en estos casos se efectúa “al vuelo” a medida que se obtienen los datos del campo. Los métodos sobre transformadas realizan una transformación integral previa del conjunto original de datos. La compresión no se realiza sobre los datos originales, sino sobre los datos transformados. No se aplican a medida que se obtienen los valores del campo ya que requieren de un conjunto de datos determinado. Un ejemplo de este tipo de método es la compresión con wavelets. . La Transformada Wavelet, más conocida por su nombre en inglés, Discrete Wavelet Transform (DWT), es una herramienta matemática de reciente desarrollo que permite descomponer una señal no sólo en componentes frecuenciales sino también en componentes espaciales. La DWT, aplicada sobre un arreglo de datos típico, lo convierte en un arreglo en el cual la energía se concentra en solo unos pocos coeficientes. Como los demás coeficientes son pequeños pueden codificarse con muy pocos bits. Por ello se obtienen tasas de compresión muy altas conservando, al mismo tiempo, una buena calidad en la reconstrucción de la señal. Existen múltiples enfoques para la definición de los wavelets. Expondremos el que requiere menos prerrequisitos y que se basa en el esquema “lifting” [8, 9]. En el caso más simple, el esquema “lifting” consta de tres fases: división (Split), predicción y actualización. La idea básica es la siguiente: Supongamos se comienza con un conjunto de datos al que nos referiremos como {}1100,,,−=NxxxXK. En la primera fase del algoritmo se divide este conjunto en dos subconjuntos y . Aquí usamos subíndices negativos siguiendo la convención eX1− oX1−
  • 3. que mientras más pequeños sean los subconjuntos menores serán los subíndices. Nos referiremos a como el subconjunto wavelet. No existe ninguna restricción sobre la manera en que se efectúa esta división pero usualmente está compuesto por los elementos de con subíndice par y a lo integran los elementos con subíndice impar. En la fase de predicción tratamos de predecir los elementos de a partir de los elementos de usando la correlación presente en los datos originales. Si los datos del conjunto están altamente correlacionados es posible esperar que, por ejemplo, a partir de los valores y se pueda obtener una buena aproximación del valor de . oX1− eX1−0XoX1− oX1− eX1− 0X2x4x3x Si pudiéramos encontrar un operador de predicción P, independiente de los datos y que garantice que = entonces pudiéramos reemplazar el conjunto 0X por el conjunto eX1− puestoe podemos predecir la parte faltante para reconstruir 0X. oX1−)(1eXP− La construcción de este operador de predicción se basa, típicamente, en algún modelo sobre los datos que refleje su estructura de correlación. Obviamente, en la práctica es imposible lograr una predicción exacta que sea independiente de los datos iniciales. Sin embargo si es suficientemente cercano a podríamos reemplazar cada elemento de por la diferencia entre su valor y la predicción del mismo. Es decir (simbólicamente): )(1eXP− oX1− oX1− oX1−:=− oX1−)(1eXP− Si la predicción es razonable esta diferencia contiene mucha menos información que el conjunto original. El subconjunto wavelet ahora codifica en que medida los datos se desvían del modelo a partir del cual se construyó el operador P. En la fase de actualización se trata de que algunas propiedades globales de los datos del conjunto original se conserven en el conjunto más pequeño . Por ejemplo en el caso de imágenes pudiéramos exigir que la imagen más pequeña tenga el mismo brillo que la original. En el caso de señales pudiera exigirse la conservación de un número determinado de momentos. 0XeX1− Para ello se construye el operador U y se actualizan los valores de los elementos de de manera que (ver Figura 1): :=+ eX1− eX1− eX1−)(1oXU− FIGURA. 1 FASES DEL ESQUEMA “LIFTING”: DIVISIÓN, PREDICCIÓN Y ACTUALIZACIÓN Este esquema puede ser iterado. Dividimos en dos subconjuntos y y reemplazamos por la diferencia entre y . Luego de pasos obtenemos que el conjunto original puede ser reemplazado por su representación wavelet: eX1− eX2− oX2− oX2− oX2−)(2eXP−n {}oononenXXXX11,,,,−+−−−K Si el modelo de predicción empleado es exitoso la energía del vector obtenido se concentra en . Los coeficientes wavelets que pertenecen a alguno de los conjuntos: enX− {}oononXXX11,,,−+−−K deben ser pequeños y codificables con pocos bits. La transformación inversa se obtiene invirtiendo los pasos dados en la transformada directa. En seudo código podríamos escribir (asumiendo x): eXX00= TRANSFORMADA WAVELET FOR nj−−−=K,2,1 { ( , ) = ; ej Xoj X)(1ej XSplit+ :=− ; oj Xoj X)(ej XP :=+ ej Xej X)(1oj XU+ } TRANSFORMADA WAVELET INVERSA FOR 1,1,−+−−=Knnj { :=− ; ej Xej X)(1oj XU+ :=+ ; oj Xoj X)(ej XP = , ; ej X1+(Joinej Xoj X) }
  • 4. Para definir la función de predicción se pueden usar polinomios de interpolación cuyos nodos estén distribuidos alrededor del punto a estimar. Por ejemplo, para estimar , se pueden usar los dos valores adyacentes con índice par con los cuales se construye un polinomio de interpolación lineal. 12+kx222,+kkxx Después de aplicar la transformada wavelet al conjunto de datos y una vez cuantificados los valores resultantes se utilizan mecanismos de compresión que permitan disminuir al máximo la cantidad de bits necesaria para la codificación de los datos. Se ha usado (por ejemplo en [10]) el algoritmo RLE (Run Length Encoding) para la supresión de las largas cadenas de ceros resultantes de la cuantificación de los coeficientes wavelets pequeños. Uno de los algoritmos que mejores resultados ofrece para la codificación es el algoritmo SPIHT (“Set Partitioning in Hierarchical Trees”) [5]. Este algoritmo ha recibido una aceptación universal en la compresión de imágenes al igual que en la compresión de electrocardiogramas [7] que son señales analógicas que requieren una alta calidad en la reconstrucción para que conserven su valor diagnóstico. El algoritmo basa su funcionamiento en las propiedades estadísticas de los coeficientes wavelet obtenidos luego de aplicar sucesivamente la transformada Wavelet. En particular, se fundamenta en el ordenamiento por la magnitud de éstos y por sus posiciones dentro de la estructura en forma de árbol de la transformada wavelet. Permite la transmisión progresiva de los coeficientes, enviando primero aquellos que tienen mayor relevancia, lo que posibilita detener el algoritmo en un grado de resolución deseado. DESCRIPCIÓN DEL ALGORITMO PROPUESTO El algoritmo propuesto para la compresión de datos históricos analógicos consta de las siguientes etapas: • División del conjunto de datos en bloques. Cada bloque representa el conjunto de datos medidos en un intervalo de tiempo determinado. Contiene el identificador de la variable, la primera marca de tiempo de los datos del bloque, la duración, en milisegundos, del intervalo de tiempo que cubre el bloque, la cantidad de valores agrupados y un campo variable que contiene los valores comprimidos. Los mejores resultados del algoritmo se obtienen si la cantidad promedio de datos en cada bloque es mayor que 256 e inferior a 8192 y si, en lo posible, el número de datos es una potencia de dos. La presencia en el bloque de la marca de tiempo inicial y del intervalo de tiempo que cubre permite determinar fácilmente si el bloque debe ser tratado para el manejo de alguna consulta del usuario. • Separación de los datos de cada bloque en tres vectores: el vector de valores; );,,,(110−=nvvvvK el vector de marcas de tiempo );,,,(110−=nttttK y el vector de calidades: ).,,,(110−=nccccK Cada uno será procesado por separado. Estos vectores tienen características diferentes que aconsejan su tratamiento diferenciado. • Selección del modelo de transformada a utilizar para el vector de valores. Para esto, con un subconjunto pequeño de valores, se evalúan diferentes funciones de predicción y actualización: tales como la transformada con interpolación (2, 2), la transformada con interpolación (4, 2) y la transformada simétrica biortogonal (9, 7) [8]. En base a los resultados obtenidos en este pequeño subconjunto se decide cual esquema se aplicará a todos los datos. Esta evaluación, que al efectuarse con pocos puntos, no incrementa sustancialmente el tiempo de procesamiento, permite mejorar los resultados del esquema. • Aplicación de la transformada Wavelet al vector de valores. A cada elemento se le resta el valor medio de los datos para garantizar que el vector resultante tenga media cero. Esta transformación propicia mejores compresiones en los pasos siguientes. Luego se aplica la transformada wavelet elegida de acuerdo al punto anterior. • Cuantificación del vector de coeficientes wavelet con un parámetro configurable. El vector transformado se lleva a un vector de números enteros mediante un proceso de cuantificación. El parámetro de cuantificación usado es dependiente de la variable y debe ser objeto de configuración en el SCADA. • Comparación con umbrales. Los coeficientes wavelet cuantificados cuyos valores absolutos sean menores que un umbral configurable son igualados a cero. Este paso permite la eliminación selectiva de ruido en la señal. • Codificación del vector resultante con SPIHT. El vector resultante de los pasos anteriores se codifica utilizando el algoritmo SPIHT. Para ello se utiliza opcionalmente una cuota de bits máxima que es dependiente de la variable y debe ser objeto de configuración en el SCADA. • Transformación del vector de marcas de tiempo. Las variables de un SCADA se miden generalmente en intervalos periódicos, por tanto es presumible que los valores representen una progresión aritmética, o sea, puedan determinarse con alta precisión de acuerdo a la fórmula: kt
  • 5. ;1,1,0; )1( 010−= − − ⋅+=−nknttkttnkK Por ello, el vector de marcas de tiempo se somete a la siguiente transformación: ); 1(~010− − ⋅+−=− nttktttnkk Esta transformación debe reducir sustancialmente la norma del vector de marcas de tiempo y provocar que para períodos de muestreos muy exactos el vector resultante sea nulo. Si el vector resultante )~,,~,~( ~ 21nttttK= es nulo (con un margen de tolerancia configurable) no se codifica. Si no es nulo se codifica este vector en el próximo paso. • Aplicación de la transformada Wavelet (2, 2) entera al vector de marcas de tiempo. • Comparación con umbrales. Los coeficientes wavelets del vector de marcas de tiempo transformado, cuyos valores absolutos sean menores que un umbral configurable, son igualados a cero. • Codificación con SPITH del vector entero resultante. • Codificación con RLE (Run Length Encoding) del vector de calidades. La calidad es una función que, en el tiempo, es constante a trozos. Usualmente la calidad de los valores se mantiene estable en largos períodos de tiempo lo que facilita su compresión mediante RLE. FIGURA. 2 SECUENCIA DE OPERACIONES EN EL ALGORITMO DE COMPRESIÓN El algoritmo propuesto presenta las siguientes ventajas: 1. La compresión de los datos analógicos lograda mediante la transformada wavelet y SPIHT es, en general, mayor que la lograda por los algoritmos tradicionales. Se logran tasas aceptables de compresión incluso cuando se requieren reconstrucciones sumamente exactas de la señal. 2. La conservación de momentos que se realiza en la fase de actualización de la DWT posibilita una mejor conservación de las propiedades estadísticas de la señal no sólo con bajas tasas de compresión sino también con altas tasas de compresión. 3. Control exacto de la compresión. Se puede establecer “a priori” una tasa de bits por muestra. Esto posibilita prefijar el tamaño ocupado por los registros y por los archivos. La tasa de bits puede reducirse en la medida que los datos van envejeciendo, de manera que se pase de un alto nivel de detalle y baja compresión en los datos más recientes a un bajo nivel de detalle y una alta compresión para los datos más antiguos. 4. La transformación necesaria, del flujo de bits que contiene los datos comprimidos, para pasar a una tasa de bits menor, en la compresión, es simple, debido a las propiedades del algoritmo SPIHT. Esta tarea no requiere una recodificación ya que se reduce a despreciar los últimos bits en los datos comprimidos de los vectores de valores y de marcas de tiempo. 5. Se conserva la información de la marca de tiempo de cada uno de los puntos capturados independientemente de si son significantivos o no. La conservación de todas las marcas de tiempo ocupa solo una pequeña parte de la cuota de bits de los datos comprimidos debido a la naturaleza lineal de las marcas de tiempo de una variable que se muestrea de manera periódica. 6. El algoritmo permite la eliminación selectiva del ruido en la señal original. 7. Es posible mantener el formato de base de dato relacional en la BDH si se utiliza un campo binario variable para el almacenamiento de los vectores comprimidos. 8. La representación de la señal a partir de su transformada wavelet facilita los procesos de minería de datos [11]. RESULTADOS. Para evaluar los resultados de la compresión de datos analógicos se han usado datos reales de señales medidas por el Sistema de Supervisión y Control “EROS” [12] en la fábrica de Níquel “René Ramos Latour”. La compresión obtenida respecto a la señal original se evalúa normalmente
  • 6. por dos parámetros; mediante la tasa de compresión y mediante la distorsión producida al comprimir la señal. La tasa de compresión CR se define como: cxLLCR=, donde es el tamaño (en bits) de la señal original y el tamaño de la señal comprimida. xLcL Por otra parte, la distorsión generada por la compresión (o error de reconstrucción) se evalúa a través de la distorsión residual PRD (Percent Root mean square Difference). La fórmula usada para calcular la distorsión residual es la siguiente: ΣΣ= = − − ×=NixiNiiixxxPRD1212)( )( 100 μ ) donde es la señal original, ixix) es la señal reconstruida y xμ es el valor medio de la señal original. La primera señal, que llamaremos Señal A y se muestra a modo de ejemplo, está constituida por 1024 puntos tomados a intervalos de 1 segundo. La transformada Wavelet usada para la compresión fue la Biortogonal 9-7. Los resultados para diferentes niveles de compresión se muestran en la siguiente tabla: TABLA 1 RESULTADOS OBTENIDOS EN LA COMPRESIÓN DE LA SEÑAL “A” Bits por muestra CR PRD 1 bps 32 3,771 2 bps 16 1,135 3 bps 10,7 0,720 4 bps 8 0,340 Se puede apreciar que incluso con tasas sumamente altas de compresión se alcanzan distorsiones residuales bajas. En esto influye la baja relación ruido/señal que presenta este juego de datos. En las figuras 3, 4 y 5 se muestran los gráficos de la señal original y de las reconstrucciones, apreciándose que, a la percepción, la reconstrucción con 1 bps es excelente. En todos los casos se calculó la entropía del flujo de bits de salida del SPIHT para evaluar si era factible aplicar un paso adicional con un codificador probabilístico (como el código de Huffman o un codificador aritmético). Los resultados de estas pruebas consistentemente arrojaron que las ganancias en compresión serían mínimas y no compensarían el costo computacional de ese paso adicional. 020040060080010002426283032Señal original FIGURA. 3 GRAFICA DE LA SEÑAL “A” ORIGINAL 020040060080010002426283032Señal reconstruida 2 bps FIGURA. 4 GRAFICA DE LA SEÑAL “A” RECONSTRUIDA 2BPS 020040060080010002426283032Señal reconstruida 1 bps FIGURA. 5 GRAFICA DE LA SEÑAL “A” RECONSTRUIDA 1BPS. La segunda señal, que llamaremos “B” está constituida por 256 puntos tomados a intervalos de 1 segundo. Esta señal presenta mucha mayor variabilidad y una mayor relación ruido/señal que la señal “A” por lo que la distorsión
  • 7. residual, para los diferentes niveles de compresión, es mucho mayor. Se puede apreciar (ver Figuras 6, 7, 8 y 9) que la señal reconstruida, incluso para tasas altas de compresión, (2 bps) mantiene las características esenciales de la misma, en especial los máximos y mínimos locales de amplitud significativa. El efecto más notable de la compresión es la suavización de la señal con pérdida de armónicos de alta frecuencia. TABLA 1 RESULTADOS OBTENIDOS EN LA COMPRESIÓN DE LA SEÑAL “B” Bits por muestra CR PRD 1 bps 32 34,37 2 bps 16 20,83 3 bps 10,7 14,95 4 bps 8 8, 29 0501001502002501819202122232425Señal original FIGURA. 6 GRÁFICA DE LA SEÑAL “B” ORIGINAL. 0501001502002501819202122232425Señal reconstruida 4 bps FIGURA. 7 GRÁFICA DE LA SEÑAL “B” RECONSTRUIDA 4 BPS. 0501001502002501819202122232425Señal reconstruida 3 bps FIGURA. 8 GRÁFICA DE LA SEÑAL “B” RECONSTRUIDA 3 BPS. 0501001502002501819202122232425Señal reconstruida 2 bps FIGURA. 9 GRAFICA DE LA SEÑAL “B” RECONSTRUIDA 2 BPS. CONCLUSIONES Los resultados de las pruebas realizadas muestran que el esquema propuesto para la compresión de históricos proporciona altas tasas de compresión y al propio tiempo buena calidad en la reconstrucción. Permite conservar los parámetros estadísticos básicos de la señal, la calidad de cada valor y, dentro de un rango de tolerancia configurable, conserva todas las marcas de tiempo de los valores medidos. Posibilita además incrementar las tasas de compresión sin necesidad de reprocesar la información lo que permite, disminuir el nivel de detalle en los datos. AGRADECIMIENTOS Este trabajo ha sido patrocinado de manera directa o indirecta por: • Petróleos de Venezuela S.A. (PDVSA) • Universidad de Ciencias Informáticas (UCI).
  • 8. • Grupo de Desarrollo “EROS”, SerCoNi. Los autores expresan su agradecimiento a todas las personas de las instituciones mencionadas que han posibilitado la realización de este trabajo. REFERENCIAS [1] Hale J.C, Sellars H.L, "Historical Data Recording for Process Computers", CEP, Nov., 1981, pp. 38-43. [2] Bader F. P., Tucker T. W., "Real-Time Data Compression Improves Plant Performance Assessment ", InTech, August 1987, pp. 53-56 [3] Kennedy J. P., "Data Storage for CIM", Process Engineering, Feb. 1988, pp. 31-35. [4] Bristol E. H., "Swinging Door Trending: Adaptive Trend Recording", ISA National Conf. Proc., 1990, pp. 749-754. [5] Said A., Pearlman W., “A New Fast and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 6, June 1996. [6] Shapiro J.M., “Embedded image coding using zerotrees of wavelets coefficients”, IEEE Trans. Signal Processing, vol 41, pp 3445-3462, Dec., 1993. [7] Lu Zhitao, Kim Dong Youn , Pearlman W., “Wavelet Compression of ECG signals by the Set Partitioning in Hierarchical Trees Algorithm”. IEEE Transactions on Biomedical Engineering, Jul 2000, Vol. 47 Issue 7. [8] Sweldens W., “The lifting scheme: A construction of second generation wavelets”, Siam J. Math. Anal, Vol. 29, No. 2, pp 511- 546, 1997. [9] Fernandez G., Periaswamy S., Sweldens W., “LIFTPACK: A Software Package for Wavelet Transforms using Lifting”, Wavelet Applications in Signal and Image IV, pp. 396-408, 1996. [10] Cárdenas-Barrera J., Lorenzo-Ginori J., Rodríguez Valdivia E. “Algoritmo basado en wavelets packet para la compresión de electroencefalogramas”, Memorias II Congreso Latinoamericano de Ingeniería Biomédica, Habana, Mayo 2001. [11] Tao Li, Qi Li, Shenghuo Zhu, Mitsunori Ogihara, “A Survey on Wavelet Applications in Data Mining”, SIGKDD Explorations, Volume 4, Issue 2, 2003 [12] Grupo de Desarrollo EROS, “Manual del Usuario del EROS versión 5.0”, 2002. [13] Thornhill N., Shoukat C. , Shah S. , “The impact of compression on data-driven process analyses”, Journal of Process Control, 14 (2004) 389–398