How to correct for ambiguity velocities / phase wrapping?

Ambiguity problems are a fundamental aspect of all phase difference measurements. The pulse-coherent method measure velocity by transmitting a pair of short sound pulses with a known time lag or separation. The phase difference between the two reflected pulses is a direct measure of the velocity, but if the phase difference goes outside the range of ±π, the measurement uniqueness is lost, something known as Velocity Ambiguity. For example, a sine wave with phase -π looks the same as a sine wave with phase +π. Phase wrapping will typically happen, if the maximum velocity is higher than the configured velocity range. An example dataset can be seen in Figure (1). The ambiguity velocity comes into play in all Doppler systems, but it is only an issue in “pure coherent systems” because of the large pulse separation. Further details on this topic can be found here: Phase wrapping & velocity ambiguity

 

Figure 1: Coordinate systems. From left: Beam coordinates, XYZ coordinates and ENU coordinates. An example of phase wrapping showing an abrupt change from negative to positive velocity. The nominal velocity range was set to 30 cm/s, yielding a horizontal velocity range of 142 cm/s. The plotted velocity is from the X component of the recorded data for a Vector.

 

How to identify phase wrapping

For high velocities, phase wrapping can be identified easily due to abrupt switches from positive to negative velocities. A simple sign filter (i.e., positive velocity expected, wrapped points have a negative sign) will work efficiently to identify wrapped points.

For smaller velocities, it can be harder to identify wrapped points by sign alone. Playing with various forms of local median filters to identify wrapped points has varying degrees of success, dependent largely on the quality of the dataset. Histograms are useful for this type of work. Often the ambiguity velocity causes the tail of a histogram to be cut off and shifted to the wrong side of the histogram (see Figure (2)), meaning that it is easy to pick out wrapped velocities visually. This is a good way to check the success of any identification scheme developed.

 

mceclip0.png
Figure 2: Example of velocity phase diagram where phase wrapping causes a shift of the histogram tail

 

How to unwrap the data

It is, in principle, possible to unwrap data when you can make assumptions about du/dt, but only if the SNR and correlation are good. There are two ways to go about dealing with your data.

  1. Develop an outlier filter to remove the wrapped data. If there are only a few points (some small percentage of the total data), it’s relatively simple to define a cutoff threshold outside of which you discard the velocity data. If needed, you can interpolate these removed points back in as long as the gaps created by removing them are not too large. The advantage of this is that it is relatively simple and quick, and the impact on statistics is going to be fairly minimal because so few points are involved.
  2. If the number of wrapped points is fairly high, option 1 above is problematic because the variance of the signal is artificially constrained by the phase wrapping (i.e. the largest events are being eliminated from sampling). In this case the data either needs to be corrected or retaken. For a field deployment this generally means correction. Below are the recommended steps for going about doing this.

 

Step 1 in phase wrap correction is to get the data back into beam coordinates. For detailed guidelines on coordinate system transformation, please see this article:

Step 2 is to find the Ambiguity Velocity. This velocity (denoted \( V_{amb} \) is the maximum along-beam velocity that can be measured by the instrument in its deployment configuration. There are two ways of finding this velocity:

  • A simple estimate of \( V_{amb} \) is the average of the absolute values of the maximum and minimum measured velocities.
  • A more accurate method is to find the velocity range using (1). This formula is the standard Pulse-Coherent maximum velocity calculation described in detail in this article: Pulse-coherent measuring methodology. The time lag of the dataset can be found in the instruments configuration documented within the raw data file. 

     

\( V_{max} = \frac{c}{4  f \Delta t} \) (1)
       
  \(V\) - measured velocity along the beam axis \( [\frac{m}{s}]\)
  \(c\) - speed of sound in water \( [\frac{m}{s}]\)
  \(f\) - acoustic transmit frequency \( [\frac{1}{s}]\)
  \(\Delta_{t}\) - time difference between two consecutive pulses \( [s]\)

 

  • The ambiguity velocity is double the velocity range,  \( V_{amb}= V_{max} \cdot 2 \)
  • To calculate \(\Delta_{t}\) for Gen1 instruments, please see the relevant chapter this FAQ: High resolution (HR) mode

Step 3 is to remove the \( V_{amb} \). The procedure is as follows: 

loop over all the data points
   if large jump in velocity, then
       if the jump is negative, then
           newvel = oldvel + V_amb
       else
           newvel = oldvel - V_amb
       end
   end
end loop

 

Step 4 is to transform the velocities back to XYZ or ENU.

 

 

Updated