Electronic – Triggering for geophone triangulation

analogsensortimer

I'm using three geophones to triangulate impact events inside the triangle, e.g. a mallet hitting the floor. Since the magnitude of the event is unknown, the position is calculated only by the timing differences of the peak hitting each of the geophones. I know how to do this theoretically, though this also requires knowing the exact location of the geophones relative to each other, and the sound qualities of the floor.

The geophones I'm using are here. The geophones provide a voltage proportional to vertical velocity, and behave as high pass filters with a corner at around 5 Hz.

Just using an oscilloscope to look at the voltages across the terminals gives me data that looks like this:

geophone data
Here, the impact is mostly centered, but closest to the Channel 1 geophone.

geohpone data 2

And here's one where it's ~10 inches from #3.

I know I need amplifiers for each of the geophones so that they don't have to drive the relatively long wires to a central DAq circuit. I also know what to do once I have 3 time values relative to an arbitrary start.

I'd like to do as much of this middle piece in analog as possible, since I already know how to get the whole waveform and process in MATLAB. I was thinking of using a Schmitt trigger to ignore the later peaks, since these may or may not have the same time delays. Can I use 1 line being high to start two ramps, and then sample and hold one ramp when 2 lines are high, and then sample and hold the other when all three are high? How can I tell which was which?

I'd like to be able to resolve down to a few centimeters, which given the speed of sound in concrete means around 320 kHz at least.

Best Answer

The more interesting plot would be what the signal from each geophone looks like if the whack is centered. In other words, what is the variation the algorithm has to contend with?

If the nature of the whack and the sound transmission is reliable in that each waveform has about the shape you show, then it shouldn't be that hard. You could pick off the time of the first negative peak below some value, or maybe the time of the positive zero crossing following it.

In any case, I really wouldn't do this with hard wired logic. This looks like a job for a micro with a fast sampling A/D that can capture multiple channels at the same time. Some of the dsPIC 33 or PIC 24H might be appropriate. That processor can do the high speed analysis and report event detection and relative delays between channels to the higher level processor.