La instrumentación virtual como herramienta para la adquisición y procesamiento de señales biomédicas Trabajo científico Autores: Ing. Eduardo González, Ing Fernando Cagnolo, Ing. Carlos Olmos, Sr. Rolando Ricón. Institución: Grupo de Ingeniería Clínica - Universidad Tecnológica Nacional, Facultad Regional Córdoba Maestro López esquina Cruz Roja Argentina – Ciudad Universitaria Córdoba – Argentina – CP: X5016ZAA Correo electrónico: gic@scdt.frc.utn.edu.ar Teléfonos: (+54351) 4684006 4684215 4684317 interno 113-6 Fax: (+54351) 4681823 Objetivos El siguiente paper muestra la importancia que adquirió la Instrumentación Virtual en los últimos años. Se introduce el estado actual de esta herramienta para la adquisición, procesamiento, automatización y control de sistemas. Sentencias vs. Eventos Durante los quince últimos años, fuimos testigos del sorprendente desarrollo de los lenguajes de programación para PC. Desde los primitivos Basic y Fortran, que permitieron hacer los primeros desarrollos para PC con interfaces de usuario amigables en la década del ‘80, hasta los evolucionados C, C++ y Visual Basic de estos días, muchas cosas sucedieron. Tanto los primeros, como estos últimos, poseen un común denominador, el método de programación. La programación por sentencias reina desde los primeros días, cuando hacer un programa que leía datos desde un puerto de la PC y los mostrara en pantalla significaba realizar un diagrama de flujo y un posterior código de unas veinte o treinta líneas al menos. Si la tarea requería de procesamiento, el programa se complicaba y era necesario desarrollar subrutinas que realizaran tareas puntuales. Debía probárselas por separado para asegurar su correcto funcionamiento, por ejemplo, la capacidad de un programa para aplicar una FFT(Fast Fourier Transform) a la señal ingresada o un filtro determinado. De modo que un programa con variados servicios o funciones se complicaba exponencialmente con los requisitos que debía cumplir y de la misma forma se alargaban los tiempos de desarrollo. Por lo general, la tarea era encargada a un experto en programación que además debía dominar las técnicas de procesamientos de señales. A la hora de programar, debía definirse las variables a usar y observar con cuidado de no repetirlas en alguna subrutina. La programación por sentencias, obligaba al microprocesador a ejecutar todas las sentencias en la forma escrita en el programa, es decir respetando la ubicación de las mismas. Un capítulo especial, corresponde al conexionado de los instrumentos de medición a una PC. En aquellos días algunos fabricantes de osciloscopios y otros instrumentos, incorporaban en la parte posterior de los mismos una interfaz IEEE 488 conocida como GPIB (General Purpose Inter face Bus). El diálogo entre PC – Instrumento, se lograba siempre y cuando se dispusiera de la información provista por la norma y el fabricante del instrumento. Además, la PC debía tener instalado el hardware y driver correspondiente. En 1986 Jeff Kodosky anuncia desde la empresa National Instruments, el nacimiento de LabVIEW (Laboratory Virtual Instruments Engineering Workbench), un nuevo concepto en lenguajes de programación. Originalmente pensado para una fácil conexión de instrumentos de medición a una computadora, hoy este software es más que un simple lenguaje de programación. Se trata de una plataforma de desarrollo con particular énfasis en aplicaciones de adquisición, procesamiento, almacenaje y control de todo tipo de datos para prácticamente cualquier área de la ingeniería y ciencias en general. Una de las mayores diferencias entre los lenguajes de programación convencionales por sentencias y LabVIEW, estriba en el principio de funcionamiento de los mismos. En los lenguajes por sentencias, la ejecución de las mismas se sigue en estricto orden, en estos casos se dice que el flujo del programa es por sentencias. En este nuevo método de programación, el flujo del programa o aplicación es por datos, es decir la ejecución de una determinada parte del código depende de la presencia de los datos en ese lugar. La ventaja del método se aprecia en el uso racional del hardware por parte del software, aumentado el rendimiento del sistema. Otra característica importante, es la facilidad para realizar aplicaciones que corran distintos procesos en paralelo. Esta técnica estaba al alcance solamente de programadores experimentados en lenguajes por sentencias. Mediante su uso y algunos conocimientos básicos de programación es posible hacer aplicaciones que ejecuten verdaderos procesos en paralelo. Es de observar, que la programación por flujo de datos es un proceso inherentemente paralelo. Interfaces Gráficas Desde hace varios años, los lenguajes por sentencias poseen poderosas herramientas para realizar las interfaces gráficas o de usuarios. Pero estas herramientas son de uso general. En este caso las herramientas gráficas están pensadas en función de instrumentos reales. Esto quiere decir que encontramos pantallas con herramientas de autoescala, zoom, distintas representaciones numéricas que se convierten automáticamente, por ejemplo, en los ejes de una representación gráfica originalmente decimal, es posible cambiar a octal. El programador tiene fácil acceso a todo tipo de controles e indicadores. Estos son fácilmente modificables para adaptarlos a necesidades particulares. La pantalla anterior muestra un VI (Virtual Instrument), nombre asignado a estas aplicaciones, con una señal provista por un sensor de temperatura. El siguiente gráfico muestra el código correspondiente. Si se observa con cuidado se advierte que los objetos colocados en la primer figura tienen nombres que se corresponden con los de la segunda figura (diagrama). Claramente se aprecia que el código, llamado diagrama, es muy sencillo. La interpretación es la que sigue: Los datos son adquiridos por una placa o tarjeta colocada en la computadora (Se trata de un software multiplataforma, o sea que lo hecho bajo Windows 95/98/NT/Me/2000/XP, correrá sobre Mac, Unix y Linux sin problemas), de allí, los datos pasan a la memoria de la computadora y son mostrados por la ventana Waveform Chart. El ícono con el termómetro representa el proceso de adquisición de los datos, el terminal con la leyenda es la representación de la ventana donde se los muestra y el cable que los une indica que hay una transferencia de datos desde el primero al segundo. Se puede conocer en más detalle el proceso de adquisición? Haciendo doble clic sobre el ícono con el termómetro se aprecia el interior del mismo. Icono que representa la placa de adquisición de datos. Se muestra que es la placa número 3 en esa máquina y es el canal número 0 el que está adquiriendo la señal. Rutina condicional ( equivalente al if) que muestra el proceso de conversión de grados F a grados C. Las gráficas anteriores demuestran que ya no hace falta ser un experto programador para hacer aplicaciones complejas de adquisición y procesamiento de datos. Esta es la herramienta ideal para científicos, ingenieros y técnicos, donde lo más importante es el problema a resolver y no el dominio de un lenguaje de programación. En el Grupo de Ingeniería Clínica de la Universidad Tecnológica Nacional - Facultad Regional Córdoba (UTN -FRC), se optó por este lenguaje para la adquisición, procesamiento y almacenamiento de datos provenientes de un electroencefalógrafo. La siguiente gráfica corresponde a la selección del montaje a usar en la adquisición de datos desde un paciente. El montaje seleccionado se aprecia en forma de mapa y por número de canal en la ve ntana de la derecha. La distribución gráfica elegida corresponde exactamente a la caja de paciente, ayudando a la eliminación de errores de montaje. El sistema dispone de seis montajes básicos que se pueden seleccionar desde el control de montajes, más la posibilidad de grabar montajes especiales que se necesiten para estudios particulares. Simplemente se debe apretar el botón Editar Montajes y con el mouse de la PC se marcan los electrodos a usar en este nuevo montaje. Terminada la selección del montaje, sobreviene el proceso de adquirir datos, que pueden ser adquiridos desde un archivo o directamente desde el paciente a través de una placa de adquisición de datos. El gráfico de abajo muestra ocho canales de datos durante el proceso de adquisición (los datos mostrados son simulados). Finalizada la captura de datos, estos son guardados en un archivo junto a otros datos del paciente. La pantalla siguiente aparece en forma automática para no distraer al operador. Al cargarse los datos del paciente, el sistema generará un archivo único según la norma EDF (European Data Format, 1992). Actualmente se trabaja en la actualización a las normas EDF+ (European Data Format Plus, 2004) y GDF (General Data Format) un formato propuesto recienteme nte, para ser aplicado a todo tipo de señales biomédicas. El gráfico de abajo muestra parte del código en G (lenguaje gráfico) que realiza el proceso de grabación de los datos, dando la opción al usuario de generar, en forma opcional, un archivo Excel para posterior análisis en esa aplicación. Grabación de todos los datos del paciente según la norma EDF (European Data Format, 1992) Grabación en formato Excel. Análisis de Datos Este lenguaje posee extensas librerías para el procesamiento de señales, agrupadas bajo el nombre de Signal Processing. Una de las más usadas es Measurement VIs, una librería con herramientas muy populares que permiten realizar procesos como • • • • • Calcular la distorsión armónica presente en una señal Determinar la respuesta impulsiva o función de transferencia de un sistema Estimar parámetros tales como tiempo de subida, picos y demás Calcular el espectro de amplitud y fase de una señal Estimar componentes de continua y alterna de una señal Antiguamente, estos cálculos se realizaban mediante instrumentos de mesa. La librería Measurement VIs hace posible que aquellos instrumentos de muy alto costo puedan ser reemplazados por una PC de escritorio. Estas herramientas están hechas a partir de otras herramientas para el procesamiento de señales digitales, donde se tuvo en cuenta lo siguiente • Se asume que una señal de entrada a un VI en el dominio del tiempo, es real. • Las salidas proveen magnitud, fase, en escala y con la unidad apropiada para ser graficadas inmediatamente. • Los espectros se calculan para valores positivos de frecuencia y van desde la continua hasta la frecuencia de Nyquist. • Donde corresponde, se aplican correcciones automáticas. Todo esto significa, que es posible conectar sin inconvenientes las entradas de los Measurement VIs directamente a los dispositivos de captura de datos, y sus salidas llevarlas a las herramientas de graficación sin ningún tratamiento intermedio. Placa de adquisición de datos (DAQ) DAQ VIs o de adquisición Measurement VIs Plotting VIs o de graficación Una forma sencilla de interpretar lo expuesto anteriormente, es analizar el siguiente VI. Se trata de adquirir señal proveniente desde la placa de audio de la PC. Como todo hardware conectado a la PC dispone de algún tipo de preselección, en este caso se pueden cambiar los siguientes parámetros. • Sound Quality: Mono o Stereo. • Rate (frecuencia de muestreo): 11025 bits/seg, 22050 bits/seg y 44100 bits/seg. • Bits per Sample: 8 bits, 16 bits. También hay que indicar el número de placa, en este caso número cero, pero puede suceder que existan otras placas en la PC, en tal caso se les asignará numeración correlativa. Terminada la configuración de la placa, el sistema está listo para funcionar. Los elementos dentro del rectángulo gris (Lazo While), adquirirán los datos, los procesarán y mostrarán en pantalla, según una secuencia indicada en el gráfico de abajo. Configura la placa de audio Genera el Espectro de Potencia Genera el Espectro de Frecuencia Comienza la adquisición Coloca en LabVIEW los datos adquiridos Muestra el Espectro de Potencia Muestra el Espectro de Frecuencia Filtros El proceso de filtrado es una de las técnicas más usadas en el procesamiento de señales. Es posible filtrar la señal ingresada a un VI? El software dispone de filtros analógicos y digitales para muy variadas aplicaciones. La siguiente es la paleta de filtros que ofrece. Filtros Chebyshef Filtros Butterworth Filtros Chebyshef Inversos Filtros Elípticos Filtros Bessel Librería de Filtros Filtro Pasa Bajo Equi-Ripple Avanzados IIR Filtro Median Librería de Filtros Avanzados FIR Filtro Pasa Alto Equi-Ripple Filtro Pasa Banda Equi-Ripple Filtro Windowed FIR Filtro Elimina Banda Equi-Ripple Como se aprecia en la gráfica anterior, se dispone de filtros analógicos y digitales. Si bien es muy conocido el comportamiento de los filtros analógicos, es sabido también que es necesaria buena pericia y conocimiento para usarlos con eficiencia. Por el contrario, los filtros digitales nos permiten trabajar señales muestreadas digitalmente sin mayores inconvenientes. Estos filtros digitales se pueden aplicar en audio, telecomunicaciones, geofísica y monitoreo médico etc. Se pueden enumerar las ventajas de los filtros digitales sobre los analógicos: • Programables por software y por lo tanto fáciles de “construir’ y testear. • Necesitan de operaciones matemáticas básicas para su implementación. • Estables, no cambian con la temperatura ni el tiempo y por lo tanto son predecibles. • No tienen corrimientos (drift) con la temperatura o humedad y no necesitan componentes de precisión. • Tienen una relación costo – beneficio superior a los analógicos. • No son dependientes de los procesos de fabricación. Es muy importante aclarar, que en los procesos de digitalización aparece un fenómeno llamado Aliasing. Este fenómeno se presenta cuando entra al sistema una señal cuya frecuencia es superior a la mitad de la frecuencia de muestreo, generando armónicos que no están presentes en la señal original. Por este motivo es aconsejable colocar un filtro analógico pasa bajo con la adecuada frecuencia de corte. Retomando el ejemplo de aplicación al electroencefalógrafo, el siguiente gráfico muestra la pantalla donde se procesan los datos ingresados del EEG. El sistema es de ocho canales. Por tal motivo, hay ocho gráficas de FFT. Las ordenadas están graduadas en [V rms] y las abcisas en [Hz]. También se aprecia en la parte superior izquierda un mapa topográfico. Esta representación es otra forma de mostrar la información adquirida. La aplicación adquiere una determinada cantidad de cuadros que pueden ser analizados uno a uno por el usuario o hacerlos correr en forma automática a modo de película. Debajo de estos controles hay tres controles más que permiten filtrar las señales ingresadas a los ocho canales y operar con ellas de a par. La actualización de los datos es inmediata tanto en el mapa topográfico como en las FFT. Esta técnica permite mostrar rápidamente si existe un defasaje anormal entre las señales que provienen de los hemisferios izquierdo y derecho de la cabeza del paciente. Los citados filtros son fijos dado que los médicos especialistas descomponen al espectro en bandas o franjas de frecuencia, el resultado debe arrojar un patrón de espectro conocido. También se ofrece al técnico o médico que opera el equipo, un conjunto de herramientas como zoom y cambio de representación numérica, entre otras. El siguiente gráfico, muestra la parte del código donde se hace el filtrado recientemente mencionado. Se aplica un filtro por canal. En este caso se usó filtros Butterworth por tener un buena respuesta en amplitud y no deformar la información de la fase. Datos sin filtrar Datos filtrados Finalmente, el software le permite al profesional médico, separar aquellas partes de información que considere relevante para el estudio de su paciente. Estas partes se llaman épocas, y corresponden a un procesamiento posterior al de adquisición. La última gráfica muestra ocho canales con datos simulados (senoides), en las que se marcó con los dos cursores provistos (a y b) la zona de interés para ser grabada. Con los controles de la derecha, es posible avanzar mostrando nuevos instantes de datos adquiridos, y por lo tanto es posible seguir guardando épocas. El software les asigna un número en forma correlativa y las guarda en la misma carpeta que el archivo EDF. La escala de las abcisas está en segundos, este dato es de mucho interés porque ubica al profesional médico en los tiempos y por lo tanto en las fases entre los canales de ambos hemisferios. Conclusiones Se presentó el estado actual de la instrumentación virtual aplicada a la adquisición y procesamiento de bioseñales. Se demostró el gran potencial de estas herramientas, su facilidad de uso y el ahorro en tiempo de desarrollo. Sin lugar a dudas, el futuro de la instrumentación y el procesamiento de datos pasará en gran medida por el uso de las herramientas virtuales. Bibliografía - The Measurement and Automation Catalog , National Instruments, (2004). Learning with LabVIEW, Bishop, (1999). 1/e LabVIEW Signal Processing, Chugani, Samant, Cerna, (1998)., 1/e Analisis of the Electrical Activity of the Brain,Editados por F Angeleri S Butler, S Giaquinto, J Majkowski, 1997 Ed. Wiley LabVIEW for Everyone, Wells – Travis, (1997)., 1/e Análisis Computado del EEG, Ferrero – Ferrero, (1995). Electromedicina, Del Aguila, Hispano Americana SA, (1994), 2/e Student Edition User’s Guide, Wells, (1994).