Creación de un marco de desarrollo que, partiendo de la adquisición simultánea y síncrona de un alto número de sensores digitales (micrófonos MEMS), permita la implementación de diferentes algoritmos de análisis de sonido y procesado espacial. El sistema debe ser fácilmente escalable en cuanto a número de sensores y capacidad de proceso a la vez que para poder adaptarse a las necesidades de las posibles aplicaciones
La Solución
•Nivel 0, es la propia FPGA en base a su capacidad para realizar tareas sencillas a alta velocidad, por ejemplo el filtrado y diezmado.
•Nivel 1, corresponde al procesador ARM embebido en myRIO. Tienen una memoria, capacidad de procesado y almacenamiento limitada.
•Nivel 2, es el ordenador de sobremesa o PC, que incluye un procesador de propósito general. Tiene alta capacidad de procesado, gran cantidad de memoria y de almacenamiento.
•Nivel 3, constituido por coprocesadores basados en GPUs, con un número elevado de núcleos. La tabla de la figura 3 presenta una lista con los principales algoritmos a implementar en una aplicación de procesado en array indicando los niveles de procesado donde podrían implementarse. La característica multi-plataforma de LabVIEW permite utilizar una única herramienta de desarrollo para la implementación de todo el sistema y reutilizar el código independientemente del target o nivel de procesado donde se ejecute. En concreto, la aplicación diseñada pretende ser un marco de desarrollo que permita la investigación y experimentación con algoritmos de procesado acústico en array y que permita una rápida creación de aplicaciones a medida en función de las necesidades del cliente. Para ello se ha utilizado los siguientes paradigmas:
•Cliente-servidor: cada uno de los módulos myRIO-Array constituye un servidor de datos independiente. El PC actúa de cliente solicitando datos a los módulos de adquisición que se transfieren vía la interfaz wifi integrada en los myRIO utilizando Network Streams. Cuando hay varios módulos de adquisición componiendo un array de mayor tamaño, la sincronización se realiza directamente entre los myRIO con un sistema maestroesclavo. Se ha definido un API de alto nivel integrado en una librería que se utiliza para invocar comandos en los clientes y recibir los datos de los micrófonos.
•Plugin Framework: la aplicación principal que se encarga de recibir los datos de los módulos myRIO y su posterior procesado y visualización de los resultados. Para evitar tener que modificar la aplicación con cada modificación de algoritmo, se hace uso de plugins que definen el procesado que se realiza y visualización de resultados en subpanels del panel frontal.