Interface BearingLocaliser

All Superinterfaces:
LocalisationAlgorithm, LocalisationAlgorithmInfo
All Known Implementing Classes:
CombinedBearingLocaliser, LSQBearingLocaliser, MLGridBearingLocaliser, MLGridBearingLocaliser2, MLLineBearingLocaliser2, PairBearingLocaliser, SimplexBearingLocaliser

public interface BearingLocaliser extends LocalisationAlgorithm, LocalisationAlgorithmInfo
Class to estimate bearings, with errors from a closely spaced hydrophone array
Author:
Doug Gillespie
  • Method Details

    • prepare

      void prepare(int[] arrayElements, long timeMillis, double timingError)
      Do any preparation necessary (e.g. creation of look up tables)
      Parameters:
      arrayElements - list of hydrophone array elements in the sub array for this localiser.
      timeMillis - , current time for this localisation
      timingError - expected timing error for each measurement (typically 1/12 of an ADC bin, or less if interpolation is being used in the cross correlation function).
    • getArrayType

      int getArrayType()
      Returns:
      the type of array - linear, planar, volumetric, etc.
    • getHydrophoneMap

      int getHydrophoneMap()
      Get a hydrophone map for this localiser
      Returns:
      bitmap of used hydrophones.
    • getArrayAxis

      PamVector[] getArrayAxis()
      Get the principle axis of the array
      Returns:
      for a linear array this will be a vector along the array;

      for a planar array, this will be the vector on the plane between two hydrophones which is closest to the y axis.

    • localise

      double[][] localise(double[] delays, long timeMillis)
      Calculate angles theta and phi, based on a set of delays. The number of delays should be equal to n(n-1)/2 where n is the number of hydrophone elements in the sub array.
      Parameters:
      delays - array of delay times.
      timeMillis - of this detection. This is relatively unused except in situation where hydrophone elements are moving relative to each other with time.
      Returns:
      theta, phi and their estimated errors all in radians.

      Data are packed into a two row array, the first row of which contains one or two angles, the second (optional) row contains the errors on those angles.