Acoustic Vector Sensing

Undergraduate Research by Ian Beil and Evan Nixon

A large part of this research project involved fixing various bugs. While the process was occasionally frustrating, we learned a lot about debugging and the value of persistence.

Problems Encountered

The first major problem we encountered involved interfacing MATLAB and LabView. While the MATLAB Script Node provides an simple way to pass information from one program to another, it adds a lot of overhead programming to a LabView VI. Originally, we created four separate script nodes to pass information, but this configuration proved unwieldy and difficult to debug. Eventually, we settled on the current layout of a single MATLAB Script Node, which handles all our inputs, does all the MATLAB calculations, and provides outputs back to LabView.

 

Another problem we found was the inability of LabView to process large amounts of AVS data. For many of our experiments, we set up the buffers to update 10 times per second. This led to frequency computer crashes, as LabView and MATLAB were unable to process so much data so quickly. Additionally, some of the plots we were displaying had properties which caused them to take large amounts of computation. We fixed these errors, and, along with the 2 seconds between updates policy, created a VI which can process at least 8 channels of data without crashing or freezing.

 

A persistent problem we encountered while working with the AVS was a “ghost” signal which manifested in a mirror image of the actual signal. For instance, when a speaker was placed in front of one sensor, the VI would calculate the position of the speaker to be the correct distance, but 180° from where it actually was. The reasons for this ghost signal are still unclear, but are likely due to the signal processing techniques we employ.