La instrumentación virtual como herramienta para la adquisición y

Anuncio
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: [email protected]
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).
Descargar