<< Chapter < Page | Chapter >> Page > |
Since we are working with discrete-time signals, the time delays we tried were limited by the sampling frequency of theDSP boards, which is 48 kHz. By dividing the desired time delay by that sampling period and rounding to the nearestinteger, we converted our trial time delays into indices that could be used to select the correct sample out of the buffer.
So, the algorithm for delay-and-sum beamforming is straightforward, but there is room for a little bit ofcreativity in finding the amplitude of the summed sinusoids. We experimented with two methods to accomplish that task. Wewill call the first method "amplitude extraction," and the second "signal integration."
A flow diagram for the amplitude extraction method is shown in . We split the signal into two parts and multiply one part by $\sin (t)$ and the other by $\cos (t)$ . By low-pass filtering the results, we obtain the DC part of the signal which contains the amplitudeinformation. This algorithm has the obvious disadvantage that it is dependent on knowing the frequency of the incomingsignal so that the correct w is used in the multiplication step. In spite of that, we were originally selected it forimplementation on the DSP board because it showed extremely robust performance in the presence of loud noise. Addinggaussian white noise with a variance of 1 to a signal in the range $\left[-1 , 1\right]$ had no affect on the performance of the beamformer in our Matlab simulation. Unfortunently, the algorithm is tooslow to be used in real time. Evaluating two low-pass filters for every time delay combination tried was simply notpractical.
The signal integration method is much simpler computationally, which made it a better choice for our final implementation.We only had to square the beamformer output to make all the numbers positive, and sum the results over approximately onecycle of the incoming signal. The sum is similar to an integral over one period of the signal, except that thesamples aren't multiplied by the sampling period to make an "area." Our matlab simulation showed that the algorithm shouldwork, but that it is somewhat more sensitive to noise than amplitude extraction.
We were unable to try either of our Matlab simulations with real signals recorded from our microphone array because we had difficulty making stereo recordings. The computers we useddefaulted to recording from the microphone input (which is mono) instead of the line-in input, and we didn't haveadministrator access to change the settings.
Notification Switch
Would you like to follow the 'Audio localization' conversation and receive update notifications?