Resumen:
Se llevo a cabo el diseño y puesta en marcha de un sistema reconstructor de señales con Sensado Compresivo (CS) [1] adquiridas a una tasa 16 veces por debajo de la frecuencia de Nyquist. El procesamiento es realizado en el Sistema en Chip (SoC) ZYNQ-7000 [2] y desde una computadora personal (PC) se envían comandos, configuraciones, diccionarios (FFT, DCT, Haar, Gabor, Daubechies, etc.), sub-muestras y secuencias binarias necesarias para el proceso de recuperación. La investigación comenzó con un estudio de la literatura actual sobre el CS [3–20], con el fin de comprender sus fundamentos teóricos y aplicaciones.
En primer lugar, se analizaron las técnicas de optimización que permiten la recuperación de la señal submuestreada. El parámetro de decisión en la selección de la técnica adecuada fue la complejidad computacional, optando por aquél que fuese conveniente realizar en el sistema embebido.
Se adoptó como sensor al Demodulador Aleatoreo (RD) [19] y posteriormente el Modulador Aleatorio pre-Integrativo (RMPI) siendo este un arreglo de RD en paralelo con mejores propiedades para CS [17]. Luego, se armó un modelo de simulación del mismo en Matlab, permitiendo el ajuste de sus parámetros (frecuencia de muestreo, factor de reducción, numero de canales, optimizadores, secuencias de mezclado, etc).
Fueron evaluados distintos mapas caóticos (Logístico, TWBM, TWBM2, TWBM4 y FWTSM) para la generación de secuencias que el adquisidor requiere en el proceso de mezclado; con el fin de reemplazar el uso de generadores pseudoaleatorios.
Las herramientas [21,22] permitieron evaluar distintos algoritmos de optimización (CoSamp, OMP, Gradiente Conjugado, etc).
Una vez que el modelo de simulación mostró resultados favorables para una implementación del sistema, se procedió a estudiar la tecnología del SoC, junto con las herramientas de diseño que ofrece la empresa Xilinx.
Con el fin de minimizar el tiempo total en la reconstrucción de la señal, en la lógica programable se diseñaron diversos IP cores, especialmente dos aceleradores de Hardware (multiplicador de matrices y red de ordenamiento Merge-Sort [23]).
En el microprocesador, se utilizó un FreeRTOS [24] en coperación con una pila TCP/IP LWIP [25] para poder brindar al SoC con funcionalidades en red. Se diseño un protocolo sencillo de mensajes a nivel de aplicacion para la comunicación entre una PC y la placa de desarrollo Zedboard. Para tal motivo fue programada una Interfaz Grafica de Usuario (GUI) con librerias de Python y QT-Designer (PyQT versión 5). Finalmente, se fabricó un conversor Digital/Analógico con el propósito de generar señales de voltajes a partir de las submuestras enviadas desde el GUI.