1
\$\begingroup\$

I'm trying to estimate the direction of arrival of sound using a microphone array. This requires me to find the delay of the sound signal upon arriving the different microphones. For convenience, I was hoping to use 4 USB mini microphones and connect them all to a USB hub to create a 4 mic array. Is this possible?

\$\endgroup\$
2
\$\begingroup\$

No, this is not possible. The main problem is that the audio sample clocks between the four microphones will not be phase-aligned and possibly not match in frequency. Because of this you won't know how to align the four data streams to do proper processing.

It would be better to get a single 4-channel audio USB interface. At least then you'll know that they are all time aligned and sync'd. You can find many of these types of devices at Sweetwater Sound and Guitar Center.

\$\endgroup\$
  • \$\begingroup\$ Is there a cheaper alternative to this? Ultimately the whole thing is supposed to work as an embedded system. I just want to test the algorithm now. \$\endgroup\$ – Kevin Martin Jose Jul 27 '13 at 18:26
  • 1
    \$\begingroup\$ For a short period of time, you could use independent USB interfaces and calibrate out any delay variation by exposing them to a source from which they are all equidistant, but the calibration may go invalid in as little as a minute due to clock drift. If you assume the delay is only on the digital side, it should be uniform with frequency and you could expose them to a reference source at a different frequency even during your experiment to maintain/verify calibration. You could also consider electrically injecting the calibration source through a small capacitor. \$\endgroup\$ – Chris Stratton Jul 27 '13 at 19:15
  • \$\begingroup\$ I found a cheap mixer : gear4music.com/PA-DJ-and-Lighting/…. It says its got 4 input channels. Can I use 4 mics and connect them to the mixer to have them synced? And more importantly, can I extract the required time delay information from this? (after digitizing the output) \$\endgroup\$ – Kevin Martin Jose Jul 27 '13 at 19:35
  • \$\begingroup\$ @lonesword a mixer won't help. It will just mix together the audio from all the mics, and you won't be able to identify the sound from the individual mics. I expect you will have to process the individual audio signals directly, and simultaneously, to be able to extract the required timing information. \$\endgroup\$ – Peter Bennett Jul 27 '13 at 21:27
  • 1
    \$\begingroup\$ A mixer combines the channels, a multi-channel USB interface would keep them separate (though you may spend a long time fighting with drivers to get the data in a useful form). Frankly it sounds like you are in a bit over your head here - perhaps you should try some initial experiments with only two microphones using a common stereo setup, and gain some practical experience with that. \$\endgroup\$ – Chris Stratton Jul 28 '13 at 5:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.