I am working on a system processing ultrasonic echo reflection. The transmitter creates a short ultrasonic pulse and the receiver analyses the reflection.

If I send two pulses (back to back or with some small defined delay) I receive two superimposed reflections. I can process these superimposed reflection with the IIR filter described in this post:

Trivial echo separation

to restore the single reflection.

My question is, could I get a signal with better signal to noise ratio by using two or more transmit pulses compared to the signal from a single pulse?

  • $\begingroup$ In actuall pulses are transmitted continuously at a fixed interval I.e., pulse repitition interval. The reflections are then processed for mutiple pulses depending on the duration of beam on a point target. By process I mean integration of reflections to improve SNR. It is important to note that matched filtering has already taken place. $\endgroup$ – learner Jun 27 '14 at 11:11
  • $\begingroup$ Unfortunately I can't have the time distance between the pulses longer than the duration of the echo reflection, because the traced object is moving. I can only have short distance between the pulses, which implies the two or more reflections will be superimposed and shifted in the time corresponding to the time distance between the transmit pulses. $\endgroup$ – Vlad Apostolov Jun 27 '14 at 12:20
  • $\begingroup$ How fast is the object moving w.r.t the velocity of sound? $\endgroup$ – learner Jun 27 '14 at 15:31
  • $\begingroup$ It is variable speed but I can ignore it for the case when the time distance between my pulses is a small fraction of the duration of the reflection. $\endgroup$ – Vlad Apostolov Jun 27 '14 at 22:36
  • $\begingroup$ If the transmit pulses have a time distance of 5 samples, I probably can recreate two single pulse reflections Sk and S’k by using the following IIR filters: Sk = Tk – (Sk-5) S’k = Tk – (Sk+5) If I delay S’k by 10 samples, it will time align with Sk and I can add and average S’k and Sk. The result should be a reflection with twice better signal to noise ratio compared to the reflection with single transmit pulse. Is the above idea going to work? $\endgroup$ – Vlad Apostolov Jun 27 '14 at 23:40

You need to be careful to look at your bunch of impulses in the fequency domain, to make sure you are really transmitting more energy at all frequencies. Your chain of 3 identical impulses will contain zero energy at certain frequencies. As a result, your echo-separation method (Tk = Sk – (Tk-10) – (Tk-20)) will have infinite gain at those frequencies (this is an IIR filter with 2 poles on the unit-circle), and hence it will be unstable.

As an example, I built 4 different "pulse train" signals (in Matlab), by the following method (an I've plotted the magnitude of the FFT):

>> S1 = [1;0;0;0;0;0;0;0;0;0;0];
>> S2 = [1;0;0;0;0;1;0;0;0;0;0];
>> S3 = [1;0;0;0;0;1;0;0;0;0;1];
>> S4 = [1;0;0;0;0;1;0;0;0;0;-1];
>> plot( abs([fft(S1,256),fft(S2,256),fft(S3,256),fft(S4,256)]) );

enter image description here

Note that S1 has a constant magnitude respnnse (equal to 1), as expected. S2 (made up of 2 impulses) has a magnitude response that goes to 0 at several frequencies (even though, on average, it has twice the power of S1).

S3 has three times the average power as S1, but unfortunately it also has zero energy at some frequencies.

S4 is built with a -1 in the last sample. As a result, it still has 3 times the average energy compared to S1, with the added property that is it never less than unity energy in any one frequency band.

The (simplistic) recovery-filter, for use with S4, would be : Tk = Sk – (Tk-5) + (Tk-10)), but unfortunately this is also an unstable filter (having some poles outside the unit circle). The trick to making a filter like this stable is split it into two parts.

First, you run a regular IIR filter over the signal as follows:

$$T'_k = S_k + g \times T'_{k-5}$$

where $g=\frac{\sqrt5-1}{2}$. Next, you run this filter:

$$T_k = T'_k - g \times T_{k+5}$$

and the trick, with this second filter, is to compute the samples of $T_k$ in reverse order (if you want to compute 100 samples, start with sample 99, and work your way down to sample 0).

The overarching principles here are:

  • Spread your energy out over multiple samples, in the transmitted signal, to allow you to send more energy

  • Try to always ensure there is lots of energy in all frequencies of the transmitted signal (look at the FFT of the signal)

  • Build an inverse filter

My inverse filter method shown here is a bit perverse, using a time-reversed IIR filter. If you have plenty of CPU cycles, you can compute the correct inverse filter by building it as a long FIR filter (in theory, you need an infinitely long filter, but a long enough FIR will approximate it OK).


Here is an example for a signal processing of a reflection crated by three transmit pulses spaced in 10 samples. I can represent the reflection in three ways:

  1. Sk = Tk + (Tk-10) + (Tk-20)
  2. Sk’ = (Tk-10) + Tk + (Tk+10)
  3. Sk’’ = Tk + (Tk+10) + (Tk+20)

Now I can restore three signals with three IIR filters. The first signal will be derived from the first equation above:

Tk = Sk – (Tk-10) – (Tk-20)

The second signal will be:

Tk = Sk’ – (Tk-10) – (Tk+10)

The third signal will be:

Tk = Sk’’ – (Tk+10) – (Tk+20)

Then the three signals above are aligned by a delay line (the second signal is delayed by 10 samples and the third one by 20), added together and finally the result divided by 3.

My expectation is the result would have three times better signal to noise ratio compared with a reflection signal created by a single transmit pulse.


My question is, could I get a signal with better signal to noise ratio by using two or more transmit pulses compared to the signal from a single pulse?

Yes. Adding more energy to your probe (ie using more pulses) can always increase your SNR. You just have to figure out how to process the received reflected pulses, which you already seem to understand.


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.