# acoustic interferometry

Discussion in 'Electronic Design' started by Jon Slaughter, Feb 22, 2008.

1. ### Jon SlaughterGuest

I did some simple analysis to determine the feasibility of using acoustics
for position sensing.

Essentially d = s*t where s is the speed of sound in air and t is the time
it takes for the sound wave to travel.

Now given that there are both errors in s and t we have dt*s + t*ds as our
error term.

|s| < 1000 ft/s(actually a bit larger but simplifies the math), |t| < 1
ms(corresponds to ~ 1 ft in air)

dt is the precision of the clock which if ran at 1Mhz gives dt = 1us. ds is
the precision of the the speed of sound which I'll suppose to be ~1ft/s.

With these estimates dt*s and t*ds ~ 10 mil.

It is easy enough to incease the clock frequency to marginalize dt*s. The
real issue is t*ds which involves calculating the speed of sound more
accurately(or reducing the distances < 1ft).

But this assumes that the method of transducing is perfect! I have no idea
how piezo electrics will hold up. The main issue is one of repeatability as
I believe the others can be calibrated out.

I'll worry about the problem of measuring the speed of sound after. (I think
by having multiple sensers I might be able to improve the result down to <
1in if I'm lucky. 1/10 in/s will get me sub mill accuracy)

So the real issue is mainly the transducers and I have no idea if they can
be precise enough.

My idea is to send a pulse of sound at some freq(higher the better I guess)
and start the clock. When that pulse is recieved on the other side(by simple
a threshold monitor) it will stop the clock. The problem is that start and
stop isn't well defined and it depends mainly on the piezo elements I will
be using.

Any ideas?

Thanks,
Jon

2. ### Guest

The threshold scheme will be problematic. You would need a filter to
narrow the bandwidth. Too high a Q and the ringing will trip the
threshold. Too wide and the scheme will not be very sensitive.

You way want to consider sending a chirp rather than a sine wave
packet. Sample the signal and convolve it with the chirp you sent.

3. ### John LarkinGuest

Use sine waves instead of pulses, and measure phase. The old Loran and
Raydist systems did this at low RF frequencies, but it should work
with sound, too.

Actually, tone bursts would be interesting... time the envelope for
coarse range and phase for fine. Loran sort of works that way.

John

4. ### Clifford HeathGuest

I've done this with standard 40KHz, one sender, two receivers 50mm
either side, for stereo. It's possible to detect sub-wavelength timings
(perhaps 2mm out of a wavelength of 7mm), but you get +-7mm jitter
depending on whether the first pulse to return was just too weak, or
strong enough, to get the receiver ringing. Eight cycles transmitted
with a 20Vp-p swing (use a MAX232) is enough for 6m range, if you have

With a 100mm receiver spacing, if I could have got reliable 2mm res,
that's an angular resolution of a couple of degrees, nice.

As the others have suggested, you need to actually correlate the wave
to detect the actual time of return, a simple threshold isn't enough.
Though it's possible that having two thresholds would give you enough
hysteresis to kill the jitter for the first pulse... Hmmm, didn't think
of that.. I might need to revisit that project.

If you want to detect multiple returns, it's hard - it's possible that
a weak return arrives out of phase after a strong one, and cancels it,
so you need to actually detect unexpected changes in receiver amplitude.
I guess if you had a filter that rang the same way (so you could
difference it to detect a change), then lock the filter using a CMOS
switch somehow to make it track the input for another pulse... probably
easier these days to do it digitally however.

The other thing about accurate ultrasound is you need to compensate for
temperature (v = 20*sqrt(k) for air, almost exactly). That works out to
342m/s for 20C.

Clifford Heath.