Creation of a development framework that, based on the simultaneous and synchronous acquisition of a high number of digital sensors (MEMS microphones), allows the implementation of different algorithms for sound analysis and spatial processing. The system must be easily scalable in terms of number of sensors and process capacity, as well as being able to adapt to the needs of possible applications.
The solution
•Level 0, is the FPGA itself based on its ability to perform simple tasks at high speed, for example filtering and decimation.
•Level 1, corresponds to the ARM processor embedded in myRIO. They have limited memory, processing power, and storage.
• Level 2, is the desktop computer or PC, which includes a general purpose processor. It has high processing capacity, large amount of memory and storage.
•Level 3, made up of coprocessors based on GPUs, with a high number of cores. The table in figure 3 presents a list of the main algorithms to be implemented in an array processing application, indicating the processing levels where they could be implemented. LabVIEW's multi-platform feature allows you to use a single development tool for the implementation of the entire system and reuse the code regardless of the target or processing level where it is executed. Specifically, the designed application is intended to be a development framework that allows research and experimentation with array acoustic processing algorithms and that allows rapid creation of custom applications based on customer needs. For this, the following paradigms have been used:
•Client-server: each of the myRIO-Array modules constitutes an independent data server. The PC acts as a client requesting data from the acquisition modules that are transferred via the Wi-Fi interface integrated into the myRIOs using Network Streams. When there are several acquisition modules making up a larger array, synchronization is done directly between the myRIOs with a master-slave system. A high-level API has been defined integrated into a library that is used to invoke commands on clients and receive data from the microphones.
•Plugin Framework: the main application that is responsible for receiving the data from the myRIO modules and its subsequent processing and visualization of the results. To avoid having to modify the application with each algorithm modification, plugins are used that define the processing that is carried out and display of results in subpanels of the front panel.