Let's Make Robots!

Tuned Sound localization

I've been thinking about the problem of detecting the direction of a sound source in an environment where there may be multiple sources and I have what might be an outline of an idea for accomplishing that without too much computing power.


I was looking at the MSGEQ7 Seven Band Graphic Equalizer. It has one input and a multiplexed output that produces a voltage that is dependent upon the signal level that is in a given band.   so i was thinking about what would happen if i used two of these chips that were using the same clock and were fed by two microphones that were physically offset.   if i then sent the output to two separate comparator circuits that compared the output to a reference call it trigger voltage I would have a signal from each channel that begins when the threshold is met i could send this signal to a latch that latches on one signal and resets on the second.  then send that to a RC circuit that charges the cap for the duration of the time that the latch is active if i took a measurement of the voltage across the cap when the latch is reset i could then use the time constant of the rc circuit to calculate the time between channels receiving a given sound in a given band.


I know i glossed over a bunch of details (like what if the band is reading after the sounds on both channels are at the threshold level then the time between latch and reset would be almost zero) but what i'd like to know is could this basic setup actually work.

is there a theoretical problem with the entire idea am i entirely misunderstanding the problem domain?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Sounds like the setup would work to a degree... but I'd be concerned with the response time of the RC circuit, and more importantly, won't this arrangement only work for sounds originating on one side of the device? If the side connected to the latch reset is closer to the sound source, then the circuit will latch on after the first trigger, and not latch off until the next trigger sound.

Why not simplify the circuit; I assume you're connecting this to a micro, PC, or something like that? Forget the RC tank and latches - just connect the two comparator outputs to a pair of digital inputs and measure the time elapsed between when one input fires and the other follows. With a bit of trigonometry you'd be able to calculate the angle of the sound source to the left and right, although you still can't determine whether the sound was coming from the front or the back.

If you've got a pair of analog inputs you could drop the comparators altogether, and just connect the MSGEQ7 outputs directly. With a bit of directional shielding on the microphones you could just use the analog voltage level to determine the direction the sound came from.