Services on Demand
Journal
Article
Indicators
-
Cited by SciELO -
Access statistics
Related links
-
Similars in
SciELO
uBio
Share
Universidad, Ciencia y Tecnología
Print version ISSN 1316-4821On-line version ISSN 2542-3401
uct vol.9 no.34 Puerto Ordaz June 2005
ALGORITMO DE COMPRESIÓN PARA LA SEÑAL DE PULSO ARTERIAL PERIFÉRICO
López Delis, Alberto; Vázquez Seisdedos, Carlos; Pascau Simón, Alexander
MSc. Alberto López Delis: Especialista en Tecnologías de Avanzada de Segundo Nivel en el Centro de Biofísica Médica, Universidad de Oriente, Patricio Ñumumba s/n, Santiago de Cuba, Telef. 53-22-631424, fax 53-22-632545, correo electrónico alberto@cbm.uo.edu.cu.
Dr. Carlos Vásquez Seisdedos: Investigador Agregado en la Universidad de Oriente, Santiago de Cuba, Telef. 53-22-646079, correo electrónico cvasquez@fie.uo.edu.cu.
MSc. Alexander Pascau Simón: Aspirante a Investigador en el Centro de Biofísica Médica, misma dirección, teléfono y fax que el MSc. López Delis, correo electrónico pascau@cbm.edu.cu.
Resumen: En este artículo se presenta la implementación de un algoritmo de compresión de la señal de pulso arterial para sistemas de fotopletismografía digital, con el uso de procesadores digitales de señales. Para la realización del algoritmo se utilizaron los métodos por transformadas discreta de Fourier y discreta del Coseno que permiten realizar un análisis de la distribución de la energía de la señal en un dominio transformado, logrando obtener elevadas razones de compresión. Los resultados obtenidos con iguales parámetros de prueba para ambas transformadas demuestran que si bien la razón de compresión es mejor en la transformada discreta de Fourier, la calidad en la reconstrucción de la señal es menor con respecto al de la transformada discreta del Coseno, resultando esta última la mejor opción para ser implementada en la plataforma de procesamiento. Este algoritmo permite la optimización eficiente del espacio de memoria de los equipos de pletismografía, así como un mejor desempeño en la transmisión de datos, para las aplicaciones que se llevan a cabo con los mismos.
Palabras Clave: Algoritmo de compresión/ Fotopletismografía/ Pulso Arterial/ Razón de Compresión/ Reconstrucción de la Señal/ Transformada discreta de Fourier/ Transformada discreta del Coseno/ Señal de pulso arterial periférico.
COMPRESSION ALGORITHM FOR THE PERIPHERAL ARTERIAL PULSE SIGNAL
Abstract: The implementation of a compression algorithm for the peripheral arterial pulse signal is presented for the digital photoplethysmography systems with the use of digital signal processors. For the realization of the algorithm the methods Discrete Fourier Transform and Discrete Cosine Transform were used, they allow to carry out an analysis of the energy signal distribution in the Transform Domain, being able to obtain high compression rates. The results obtained with same test parameters for both transform demonstrate that even when the compression rate is better in the Discrete Fourier Transform the quality in the reconstructed signal is smaller with respect to the Discrete Cosine Transform, being this the best option to be implemented in the processing platform. This algorithm allows an efficient optimization of the memory space as well as a better performance in the data transmission, for the applications implemented in the plethysmography equipment.
Key words: Arterial Pulse/ Compression Algorithm/ Compression Rate/ Discrete Fourier Transform/ Discrete Cosine Transform/ Peripheral Arterial Pulse Signal/ Photoplethysmography/ Signal Reconstruction.
Finalizado el 2004/08/18 Recibido el 2004/09/16 Aceptado el 2004/11/30.
I. INTRODUCCION
El uso cada vez mayor de equipos de adquisición digital de señales biomédicas en entornos hospitalarios, e incluso en algunos centros de asistencia primaria, está originando una cantidad enorme de datos biomédicos para cada paciente. La gran magnitud de esta información genera serios problemas de transmisión, procesado y almacenamiento. En este sentido la codificación compacta de señales biomédicas, en particular la señal de pulso arterial, resulta un aspecto importante. Los problemas de compresión de datos de señales se acentuaron con la utilización de los registros Holter de larga duración para señales electrocardiográficas (ECG) [1,2], en la detección y análisis de arritmias.
Los equipos concebidos para la medición de la señal de pulso arterial, diseñados y construidos en el Centro de Biofísica Médica, (ANGIODIN PD3000) registran solamente períodos cortos de tiempo (aproximadamente 39 segundos). Dentro de las nuevas características que se desean incorporar en los futuros pletismógrafos con procesadores digitales de señales, está la de aprovechar la descripción morfológica de la onda de pulso arterial, por ejemplo, para pronosticar un estado de crisis vasooclusiva en los pacientes sicklémicos y en el seguimiento farmacológico de pacientes con infarto agudo crónico a través de vasodilatadores con acción periférica. Estas aplicaciones requieren del procesamiento, almacenamiento en memoria de largos intervalos de la onda de pulso y transmisión (hacia redes hospitalarias y laboratorios) de altos volúmenes de información (en su generalidad el almacenamiento de más de un estudio).
Por ejemplo, para almacenar dos canales de fotopletismografía de 1 hora de duración, digitalizados a 106 muestras/s con 8 bits/muestra, se necesitarían aproximadamente 763 Kbytes de memoria sólo para un paciente. Sin el empleo de un algoritmo de compresión que permita un uso óptimo de los recursos de memoria y ancho de banda para la transmisión de la señal, el desempeño del sistema se afectaría considerablemente. El problema de la compresión de datos consiste en codificar la información de tal forma que por un lado se minimice el número de parámetros necesarios para la representación de la señal, y por otro lado se conserven todas las características significativas originales en la señal reconstruida. En las reducciones de señales biomédicas, usualmente la aceptable fidelidad clínica de la señal reconstruida viene dada por una inspección visual.
En este artículo se presenta la implementación y evaluación de dos algoritmos para la compresión de la señal que permitan la optimización de la memoria de trabajo del equipo y la transmisión de información en forma más eficiente. La compresión se efectúa mediante los métodos por transformadas, que realizan un análisis de la distribución de la energía de la señal en un dominio transformado. Aunque tienen un tiempo de cálculo superior al de los métodos directos, los métodos por transformadas permiten la aplicación de algoritmos automáticos de clasificación. Para la puesta a punto de los algoritmos se utilizó como soporte las herramientas del Matlab.
En el desarrollo del artículo se presenta una caracterización de las diferentes etapas que abarca la compresión mediante transformadas de la señal de pulso arterial. Seguidamente en la discusión de resultados se establece una comparación entre los dos métodos de transformadas utilizados para la compresión y finalmente se exponen las conclusiones del trabajo.
II. DESARROLLO
1. Descripción del Algoritmo.
En la Figura 1 se representa de forma esquemática un diagrama en bloques de un sistema de compresión basado en transformadas. La señal de pulso arterial es segmentada en fragmentos de duración N, siendo N la duración del latido más largo. Como no todos los latidos tienen la misma duración, los latidos más cortos se extienden con ceros. La segmentación se realiza a partir de la detección de los mínimos extremos de cada pulso arterial. Cada fragmento se representa mediante el vector Xi al cual se aplica la transformación ortogonal T. Con ello se consigue una descripción de la señal, vector de coeficientes Ci en un nuevo dominio que resulta más apropiado para su representación de forma eficiente [3, 4]. Posteriormente se procede a la cuantificación Q de los coeficientes transformados Ci.
La transformada ortogonal T logra describir la señal en un nuevo dominio en el que resulta más eficiente la representación de la señal. La cuantificación Q en el dominio transformado introduce una transformación no lineal en la señal y es donde se produce la pérdida de información. En algunos casos, luego de efectuar el proceso de cuantificación, se realiza la codificación por entropía E; este es un procedimiento reversible que no produce pérdidas y que reduce la redundancia originada por la uniformidad de la función densidad de probabilidad de los coeficientes cuantificados. Las etapas que conforman el algoritmo de compresión serán explicadas a continuación.
1.1. Segmentación de la Señal de Pulso Arterial.
El pulso arterial periférico es fundamentalmente consecuencia de los cambios del volumen de sangre debido a la actividad cardíaca, además de la propia superficie arterial en su propiedad contráctil y relajante. Existe una correspondencia temporal entre las señales de electrocardiografía y pulso arterial periférico. Es de esta relación en la que los parámetros relacionados con la sístole y la diástole en la señal de ECG se reflejan unívocamente en la señal de pulso arterial como parámetros que siempre van acompañados en cada respuesta pulsátil. Los tiempos definidos en la Figura 2 se definen como el intervalo en el que se produce la contracción ventricular (tiempo umbral) y el intervalo en el que existe ausencia de actividad muscular cardíaca (tiempo refractario) [5].
Es importante pasar la señal por un filtro pasa banda [5], en forma tal que se puedan eliminar las componentes indeseadas. Por ejemplo, las variaciones de la línea base y componentes de alta frecuencia, que no tienen origen en el corazón sino que provienen de la actividad eléctrica de los músculos del tórax (ruido muscular o electromiograma) y el ruido producido por la instrumentación. Para poder realizar una detección automática del pulso lo más óptimo posible, que se puedan descartar los posibles artefactos en la señal durante el proceso de segmentación, se utiliza el modelo de parámetros del pulso arterial. Este modelo hace uso de la primera derivada de la señal para la localización de los mínimos extremos. Se proceden a seleccionar los pares de puntos mínimos extremos adyacentes que cumplen con la condición del tiempo umbral predefinido (Figura 2).
Posteriormente se realiza una comparación entre pares de mínimos adyacentes, verificando la condición del tiempo refractario predefinido. Con la comparación entre todos los pares de muestras finaliza el proceso, quedando almacenados los índices que representan los mínimos extremos que se corresponden con la señal original (punto de inicio y final de cada segmento, Figura 3).
Con esta información se conforma una matriz de dos dimensiones que almacena por columnas los segmentos de la señal original. Una vez que se hayan almacenado todos los valores pertenecientes a un segmento, éste se rellena con cero hasta alcanzar la longitud del segmento de mayor duración N.
1.2. Transformación Ortogonal y Estimación de Coeficientes.
Para cada segmento de la matriz se efectúa la transformada. Para este proceso se utiliza la transformada discreta de Fourier (DFT, Discrete Fourier Transform) [6], que utiliza funciones senos y cosenos para representar la señal y la transformada discreta del Coseno (DCT, Discrete Cosine Transform) [7], que utiliza solamente funciones cosenos. La selección de ambas transformadas está fundamentada en los algoritmos eficientes de cálculo basados en la transformada rápida de Fourier (FFT, Fast Fourier Transform), que se proporcionan comercialmente y que posibilitan disminuir los costos computacionales en el proceso de compresión. Antes de efectuar el proceso de transformación en la DCT, la señal en el dominio del tiempo se hace simétrica con respecto a ella 0, lo que significa que una señal compuesta de 0 a M muestras realiza un duplicado o espejo de la misma desde 1 hasta M.
Realizado el proceso de transformación por cada segmento del pulso, se procede a la estimación de los coeficientes de mayor energía. Como se observa en la Figura 4, en el espectro de frecuencias de las transformadas DFT y DCT de un segmento de la señal de pulso arterial, las componentes frecuenciales de más bajo orden poseen mayor energía, por lo que si se logra agrupar un número p de funciones base asociado a estas componentes frecuenciales es posible reconstruir la señal con el mínimo error posible. Como resultante final el número de funciones base asociado a cada segmento es variable, lo que trae una ligera mejora cuando se realicen los cálculos finales del índice de razón de compresión.
La parte real de los coeficientes transformados, pertenecientes al segmento, se eleva al cuadrado para la cuantificación del contenido energético de cada coeficiente, de manera que se pueda determinar entre ellos el de mayor valor. Se selecciona un valor umbral medio, tomando como referencia el coeficiente de mayor energía, que permita seleccionar un número de coeficientes que cumplan la condición de que su energía sea mayor o igual a este valor umbral.
Estos coeficientes seleccionados representan un número p de funciones base. Un reducido número de estas funciones permite elevadas relaciones de compresión. Sin embargo, esto puede provocar un efecto de distorsión más notable sobre la señal reconstruida [5].
Los coeficientes seleccionados son almacenados en un vector común a todos los segmentos para lo cual se almacena el número de coeficientes por segmento y su duración. Estos parámetros resultan imprescindibles para la reconstrucción de la señal. El proceso concluye con la estimación de coeficientes de todos los segmentos transformados de la señal, quedando en un vector la información de esta primera fase de compresión para su posterior cuantificación.
1.3. Cuantificación de los Coeficientes Transformados.
Se realiza una cuantificación uniforme a la matriz que implica menores costos computacionales y menor información lateral (información que necesita conocer el descompresor para la reconstrucción de la señal) con respecto a la cuantificación no uniforme.
Para implementar el proceso de cuantificación se utiliza la siguiente ecuación [5]:

donde:
Qcoef: son los coeficientes cuantificados en el nuevo dominio.
Rcoeficiente(i): son los coeficientes reales transformados.
MaxCoeficiente: el máximo coeficiente que puede ser seleccionado por segmentos o entre todos ellos (global). Cuando la selección se realiza por segmentos, existe la posibilidad de que el rango dinámico entre valores por segmentos varíe, permitiendo aumentar la razón de compresión con la selección de una cantidad de bits diferentes por segmentos. Esto, sin embargo, aumenta la cantidad de información lateral para el proceso de descompresión. qbits: número de bits optimos, para el empaquetamiento de los coeficientes transformados en el nuevo dominio. round: función utilizada en Matlab que permite redondear hacia el entero más próximo.
Los valores de la cantidad de coeficientes transformados y la duración del segmento que se almacenan durante el proceso de estimación no se cuantifican; sus valores nunca llegan a sobrepasar los 10 bits. Además es importante conservar la precisión en este último parámetro para la reconstrucción de la señal.
1.4. Codificación Aritmética.
Como etapa final en la etapa de compresión, se pueden aplicar sistemas de codificación por entropía a la salida del cuantificador. La idea básica consiste en aplicar una correspondencia reversible de los valores de la salida del cuantificador a un nuevo conjunto de símbolos en forma que se minimice el número medio de bits por símbolo. El proceso de codificación se basa en asignar a cada símbolo un intervalo entre 0 y 1, para que la amplitud de cada intervalo sea igual a la probabilidad de cada símbolo. La suma de las amplitudes de los intervalos debe ser igual a la unidad [8]. En la práctica la implementación de la codificación aritmética se realiza con algunas modificaciones, ya que la precisión numérica o el número de decimales se convierte en un problema cuando la cantidad de símbolos a codificar aumenta. La secuencia de salida se define en un rango que en lugar de ser de 0 - 1 será desde 0000H - 4000H (formato hexadecimal) para la codificación a emplear. El codificador utiliza como modelo de información de probabilidades las ocurrencias de cada coeficiente cuantificado. Estas probabilidades se ajustan a un número necesario de bits para que no sobrepasen el rango de enteros predefinido [8]. En el proceso de definición de los nuevos límites inferior y superior asociado a cada coeficiente cuantificado, se verifica si el bit más significativo para ambos límites es igual. Si lo es, este bit se desplaza del límite inferior y el proceso se repite hasta que sea diferente en ambos límites. Luego se continua el proceso con el siguiente coeficiente. Sin embargo, puede existir la posibilidad de que los límites inferiores y superiores se encuentren muy cercanos (en cuanto a valor se refiere), pero nunca lleguen a ser iguales, con lo cual no se podría determinar si el bit más significativo para ambos límites es igual. Esta problemática se denomina en la terminología de la codificación aritmética como underflow [9] y en esta situación lo que se hace es desplazar el bit que le continúa al más significativo y cuando finalmente ambos bits más significativos sean iguales, entonces se desplaza el bit asociado al límite inferior.
La secuencia de salida es el límite inferior del último coeficiente cuantificado. Adicionalmente se almacena la tabla original de los intervalos asociados a los coeficientes y el símbolo que indica el final de la secuencia de los valores comprimidos [5].
2. Resultados Experimentales y Discusión
Para llevar a cabo las evaluaciones del algoritmo implementado se utilizó la base de datos de señales de pulso arterial tomadas a 50 pacientes en el Centro de Biofísica Médica y en algunos Hospitales donde el fotopletismógrafo digital ANGIODIN PD3000 se encuentra instalado. Se estableció la comparación con los dos métodos de transformadas utilizados, con iguales parámetros en cuanto a frecuencia de muestreo (106 muestras/s), número de bits/muestras (8 bits) e igual coeficiente umbral (2 x 10-7). Para establecer la comparación se utilizaron los indicadores de efectividad siguientes:
Grado de compresión o CR (Compression Rate): se define como el cociente entre la tasa de bits de la señal original y la señal reconstruida, ambas en bits/muestras.
Percentil de la raíz cuadrada de la diferencia o PRD: se define como

donde
x[n]: son las muestras de la señal original
xR[n]: son las muestras de la señal reconstruida.
N: número de muestras.
A continuación se muestran dos variantes de señales reconstruidas, utilizando las transformadas DCT y DFT, en las cuales se utilizan 14 bits para el proceso de cuantificación. Las Figuras 5 y 6 representan, en el cuadro izquierdo, la señal original y en el derecho, la señal reconstruida.
La Tabla I muestra los resultados estadísticos de los índices de efectividad utilizando las transformada DFT y DCT y 14 bits en el proceso de cuantificación. Para llevar a cabo estas pruebas se emplean 10 registros de la señal de pulso arterial tomados a varios pacientes.
Como se observa en la Tabla I los resultados obtenidos en la razón de compresión (CR_2) después de aplicar la codificación aritmética con la transformada discreta de Fourier, resultan mejores que con la transformada discreta del Coseno. Lo anterior resulta contradictorio porque hasta el proceso de cuantificación se había obtenido una mayor razón de compresión con la transformada DCT (CR_1), debido fundamentalmente a la propiedad que ésta posee de solamente estar formada por coeficientes reales. La optimización en el proceso de codificación aritmética se justifica cuanto más correlación exista en la secuencia de números enteros que se obtienen del proceso de cuantificación. Es decir, cuanto mayor sea la correlación entre los coeficientes que se obtienen durante el proceso de cuantificación, y su probabilidad de ocurrencia sea mayor (entre los segmentos cuantificados), la codificación aritmética puede representar en un menor número de bits aquellos símbolos con mayor probabilidad. Lo anterior se justifica para el caso de la transformación por DFT, puesto que ésta genera coeficientes reales e imaginarios y además la posibilidad de encontrar un mayor número de coeficientes cuantificados correlacionados en esta transformada es mayor que en la DCT.
Pero si bien la razón de compresión es mejor en la transformada DFT, el PRD es muy alto con respecto al PRD de la DCT, lo que da una idea de la calidad obtenida en la reconstrucción de la señal. Cuando se acentúa enormemente el factor de distorsión, las posibilidades para el diagnóstico de algunas patologías por inspección visual pueden verse limitadas, por lo que es recomendable disminuir la tasa de razón de compresión y aumentar la calidad en la reconstrucción de la señal. De lo anterior se deriva que resulta mejor opción la transformada discreta del Coseno y por tanto es la que se propone emplear en los nuevos sistemas de fotopletismografia. Un factor estrechamente relacionado con el parámetro de la razón de compresión es la frecuencia cardiaca de los latidos del corazón. Con el aumento de la frecuencia cardiaca se obtienen menores tasas de CR, ya que el número de segmentos de pulso aumenta y, por consiguiente, la cantidad de coeficientes transformados.
El proceso de segmentación de los pulsos, soportado sobre el modelo de parámetros del pulso arterial, evidenció una gran robustez, permitiendo descartar los posibles artefactos existentes en la señal y garantizar la correcta selección de los segmentos.
Dentro de las transformadas ortogonales se seleccionaron la transformada discreta de Fourier y la transformada discreta del Coseno. Su selección se fundamenta en los algoritmos eficientes de cálculo para su realización, basados en la FFT, que posibilitan disminuir los costos computacionales en el proceso de compresión. Dado lo importante que resulta que se garantice una óptima calidad en el proceso de reconstrucción de la señal de pulso arterial, se recomienda la selección de la transformada discreta del coseno.
Se realizó una estimación de coeficientes transformados a partir de un valor umbral medio de energía, que permite la selección de las p funciones base asociadas a los coeficientes más representativos de la señal. Las pruebas efectuadas durante el proceso de cuantificación uniforme con 12, 14 y 16 bits como el número de bits óptimos para garantizar la menor distorsión posible en la implementación en Matlab, resultó ser de 14 bits.
La codificación aritmética logra un mejor desempeño cuando se utiliza la transformada de Fourier respecto a la transformada discreta del Coseno, por la correlación existente entre los coeficientes cuantificados.
III. CONCLUSIONES
1) El algoritmo implementado en Matlab para la compresión de las señales de pulso arterial facilita el procesamiento, almacenamiento en memoria de largos intervalos de la onda de pulso y transmisión hacia redes hospitalarias.
2) El algoritmo empleado en la segmentación de los pulsos garantizó la correcta selección de los segmentos asociados a las señales estudiadas.
3) La selección de la transformada discreta del coseno garantiza un excelente compromiso entre la razón de compresión y la preservación de la forma de onda en las señales de pulso arterial analizadas.
4) El procedimiento de estimación de coeficientes transformados garantizó la máxima calidad en las señales reconstruidas, partiendo del número óptimo de funciones básicas.
5) El proceso de cuantificación uniforme arrojó como resultado que el número de bits óptimos para garantizar la menor distorsión posible es de 14 bits.
6) La codificación aritmética posibilitó un mejor desempeño cuando se utiliza la transformada discreta de Fourier.
AGRADECIMIENTOS
Los autores desean expresar su gratitud al Dr. Julián Cárdenas y el Dr. Karl Shretting, por sus aportes que resultaron de inestimable valor en esta investigación.
IV. REFERENCIAS
1) Lamberti, C., et al., Evaluation of Algorithms For Real - Time ECG Data Compression. in Computers in Cardiology, IEEE Computer Society Press, 1991. pp 399 - 403. [ Links ]
2) Cetin, E., Köymen, H.,Compression of Digital Biomedical Signals, CRC Press, Inc., 1995. pp 853-865. [ Links ]
3) Ahmed, N., Natarajan, T., Rao, K. R., Discrete Cosine Transform, IEEE Trans. on Computers, 1974. pp 88 - 93. [ Links ]
4) Vetterli, M., Kovacevic, J., Wavelets and Subband Codic, Englewood Cliffs, Prentice Hall, New Jersey, 1995. pp 541-560. [ Links ]
5) López, A., Compresión de la Señal de Pulso Arterial. Propuesta de Sistema con Procesador Digital de Señales, Tesis en opción al grado de Maestro en Ciencias en Automática, Santiago de Cuba, Universidad de Oriente, 2004. pp. 50 - 97. [ Links ]
6) Smith, S. W., The Scientist and Engineers Guide to Digital Signal Processing, San Francisco Technical Publishing, 1997. pp 1-28 [ Links ]
7) Allen, V.A., Belna, J., ECG Data Compression Using the Discrete Cosine Transform in Computers in Cardiology, IEEE Computer Society Press, 1992, pp 687-690. [ Links ]
8) Howard, P. G., Vitter, J S., Arithmetic Coding for Data Compression, Informnation Processing and Management, Vol. 28, Nº 6, 1992, pp 749-763. [ Links ]
9) Campos A., Basic Arithmetic Coding. Disponible: http://www.arturocampos.com/ac_arithmetic.html. [03, 2004]. [ Links ]




















