Implementación en FPGA de un algoritmo de compresión de señales EEG multicanal.

Favaro, Federico

Supervisor(es): Oliver, Juan Pablo

Resumen:

Los dispositivos lógicos programables ofrecen gran flexibilidad y rendimiento, características que les han hecho ganarse un lugar en diversas aplicaciones, tales como procesamiento de video y audio, infraestructura de redes y aceleración de algoritmos. Una de sus principales ventajas es que proveen la capacidad de procesamiento y el paralelismo típicos del hardware, pero una reprogramabiliadad que les permite adaptarse a los vertiginosos cambios tecnológicos a muy bajos costos. Las FPGAs basadas en RAM estática, tecnología que domina el mercado de las FPGAs, poseen las características mencionadas anteriormente. Sin embargo, esto es posible a costa de un aumento en el área de silicio, un alto consumo estático y prácticamente nulas capacidades de operación en modos de bajo consumo. Estas cuestiones, entre otras, han mantenido a las FPGAs alejadas de las aplicaciones de bajo consumo. No obstante, recientemente han surgido nuevos dispositivos orientados a este tipo de aplicaciones y las FPGAs han ganado terreno, por ejemplo, en sistemas portátiles alimentados a batería. En esta tesis se propone estudiar el problema de utilizar FPGAs en aplicaciones de bajo consumo, pero que a la vez tienen fuertes requerimientos de cómputo y manejan grandes tasas de datos, lo que dificultaría su solución mediante plataformas basadas en microcontroladores. Se aborda el problema desde el desarrollo de un electroencefalógrafo inalámbrico portátil alimentado a batería, aplicación que posee las mencionadas características. En particular, el trabajo se centra en la implementación en hardware de un algoritmo de compresión de señales neurales multicanal, como primer paso en el desarrollo de un sistema inalámbrico de adquisición y transmisión en tiempo real de señales de electroencefalograma (EEG). Los sistemas de EEG inalámbricos requieren la adquisición, almacenamiento y transmisión de señales biomédicas provenientes de múltiples canales. Esto puede generar grandes volúmenes de datos, especialmente cuando se procesan decenas de canales y las frecuencias de muestreo rondan los kilo-hertz. En esta clase de aplicaciones la compresión de datos juega un rol fundamental, ya que permite disminuir los requerimientos de almacenamiento y transmisión, que a su vez redunda en menor consumo energético. Para obtener un punto de comparación, en una primera etapa se implementa el algoritmo en una plataforma basada en el microcontrolador de bajo consumo MSP432. Luego se implementa el algoritmo en hardware y se evalúa su performance en tres FPGAs diferentes: Cyclone V 5CEBA4, iCE40HX y MachXO2. El diseño fue caracterizado para 21, 31 y 59 canales y distintas frecuencias de operación, utilizando muestras reales de EEG provenientes de bases de datos públicas. La verificación se llevó a cabo mediante simulaciones y pruebas reales en las FPGAs. En todos los casos las FPGAs logran importantes mejoras en la velocidad de compresión. La MachXO2 es entre 11 y 12 veces más rápida que la implementación en microcontrolador, alcanzando frecuencias de muestreo en el entorno de 13 kSps para 59 canales. La iCE40HX permite utilizar frecuencias de muestreo alrededor de 7 kSps, y logra incrementos respecto al MSP432 de aproximadamente 6x. La Cyclone V 5CEBA4 es aún más rápida que las otras dos, pero debido al alto consumo de potencia no resulta adecuada para la aplicación. En todos los casos se midió el consumo del Core de las FPGAs durante la compresión. En la iCE40HX se relevó un consumo entre 3 mWy 5 mW, valores similares a los obtenidos en el microcontrolador. En base a los resultados de performance y consumo obtenidos para esta plataforma, se puede concluir que es adecuada para su utilización en sistemas de bajo consumo que manejen altas tasas de datos, como es el caso de un EEG inalámbrico. Los resultados de potencia en la MachXO2 oscilan entre 21 mW y 38 mW, números relativamente altos considerando la aplicación. Sin embargo, esta FPGA posee un modo de stand-by que le permite operar en ciclos de trabajo y lograr reducciones en consumo que la acercan a los niveles del microcontrolador.


Detalles Bibliográficos
2019
EEG
Compresión de datos
FPGA
Bajo consumo
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/26808
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)