Package beamformer

Class BeamAlgorithmParams

java.lang.Object
beamformer.BeamAlgorithmParams
All Implemented Interfaces:
Serializable, Cloneable, ManagedParameters
Direct Known Subclasses:
BasicFreqDomParams, MVDRParams, NullBeamParams

public abstract class BeamAlgorithmParams extends Object implements Serializable, Cloneable, ManagedParameters
See Also:
  • Field Summary Link icon

    Fields
    Modifier and Type
    Field
    Description
    protected int[]
    A 3 element vector with the minimum azimuth angle (index 0), maximum azimuth angle (index 1), and step size (index 2) to use for the BeamOGram sweep.
    protected int[]
    A 3 element vector with the minimum slant angle (index 0), maximum slant angle (index 1), and step size (index 2) to use for the BeamOGram sweep.
    protected boolean
    whether or not this instance of the algorithm can/should allow the user to create individual beams.
    protected boolean
    whether or not this instance of the algorithm can/should allow the user to create a beamogram.
    protected int
    Channel map describing the channels (hydrophones) used in this group
    protected double[][]
    A 2D array containing the frequency range to analyse.
    protected int
    The group number these parameters are linked to
    protected int[]
    an array containing the beam headings, in degrees, where 0 = straight ahead and 180 = behind.
    protected int
    integer indicating how many individual beams are to be created.
    static final long
     
    protected int[]
    an array containing the beam slant angles, in degrees, where 0 is horizontal and -90 = straight down.
  • Constructor Summary Link icon

    Constructors
    Constructor
    Description
    BeamAlgorithmParams(String algorithmName, int groupNumber, int channelMap)
    Main constructor
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    Clone the fields in this abstract class, as well as any fields specific to the extended class.
     
    int[]
     
    double[]
     
    int[]
     
    int
     
    double[][]
     
    int
     
    int[]
     
    int
     
    int
     
    Get a set of data that describes all of the parameters in a class
    static long
     
    int[]
    Return the slant angles for the individual beams.
    boolean
    Whether or not this instance of the algorithm can/should allow the user to create individual beams.
    boolean
    Whether or not this instance of the algorithm can/should allow the user to create a beamogram.
    void
    setAlgorithmName(String algorithmName)
     
    void
    setBeamOGramAngles(int[] beamOGramAngles)
     
    void
    setBeamOGramFreqRange(double[] beamOGramFreqRange)
     
    void
    setBeamOGramSlants(int[] beamOGramSlants)
     
    void
    setCanBeam(boolean canBeam)
    Whether or not this instance of the algorithm can/should allow the user to create individual beams.
    void
    setCanBeamogram(boolean canBeamogram)
    Whether or not this instance of the algorithm can/should allow the user to create a beamogram.
    void
    setChannelMap(int channelMap)
     
    void
    setFreqRange(double[][] freqRange)
     
    void
    setGroupNumber(int groupNumber)
     
    void
    setHeadings(int[] headings)
     
    void
    setNumBeamogram(int numBeamogram)
     
    void
    setNumBeams(int numBeams)
     
    void
    setSlants(int[] slants)
    Set the slant angles

    Methods inherited from class java.lang.Object Link icon

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details Link icon

    • serialVersionUID Link icon

      public static final long serialVersionUID
      See Also:
    • groupNumber Link icon

      protected int groupNumber
      The group number these parameters are linked to
    • channelMap Link icon

      protected int channelMap
      Channel map describing the channels (hydrophones) used in this group
    • numBeams Link icon

      protected int numBeams
      integer indicating how many individual beams are to be created. Defaults to 0.
    • headings Link icon

      protected int[] headings
      an array containing the beam headings, in degrees, where 0 = straight ahead and 180 = behind. The length of the array is numBeams. The term headings (aka azimuth) is used to make the variable easily recognisable for the most common type of hydrophones array, the linear horizontal array. A more generic term for this variable would be main angle, in the direction of the primary array axis
    • slants Link icon

      protected int[] slants
      an array containing the beam slant angles, in degrees, where 0 is horizontal and -90 = straight down. The length of the array is numBeams. The term slant angle is used to make the variable easily recognisable for the most common type of hydrophones array, the linear horizontal array. A more generic term for this variable would be secondary angle, relative to the perpendicular to the array axis primary array axis
    • freqRange Link icon

      protected double[][] freqRange
      A 2D array containing the frequency range to analyse. The second array is of length 2 with index 0 = min freq and index 1 = max freq. The first array will have one index for each of the beams (i.e. [numBeams]). If this array is null, it will default to the full frequency range available from the fft source.
    • beamOGramAngles Link icon

      protected int[] beamOGramAngles
      A 3 element vector with the minimum azimuth angle (index 0), maximum azimuth angle (index 1), and step size (index 2) to use for the BeamOGram sweep. Initialises to 0deg to 180deg, with a 2 degree step. Note that the term azimuth is used for familiarity, and is appropriate for horizontal linear arrays. A more generic term would be main angle, in the direction of the primary array axis
    • beamOGramSlants Link icon

      protected int[] beamOGramSlants
      A 3 element vector with the minimum slant angle (index 0), maximum slant angle (index 1), and step size (index 2) to use for the BeamOGram sweep. For a horizontal linear array, 0 deg is horizontal and -90 deg is straight down. Initialises to zero slant (0 deg x 0 deg x 1 deg step - step size cannot be 0 or else it will cause div-by-0 error later). Note that the term slant is used for familiarity, and is appropriate for horizontal linear arrays. A more generic term would be secondary angle, relative to the perpendicular to the array axis primary array axis.
    • canBeam Link icon

      protected boolean canBeam
      whether or not this instance of the algorithm can/should allow the user to create individual beams. Defaults to true.
    • canBeamogram Link icon

      protected boolean canBeamogram
      whether or not this instance of the algorithm can/should allow the user to create a beamogram. Defaults to true.
  • Constructor Details Link icon

    • BeamAlgorithmParams Link icon

      public BeamAlgorithmParams(String algorithmName, int groupNumber, int channelMap)
      Main constructor
      Parameters:
      algorithmName - The name of the algorithm using these parameters. This should be the name returned by the getStaticProperties().getName() call to the algorithm provider object, in order to properly match up provider to parameters in BeamformerProcess.
      groupNumber - the group number
      channelMap - the channel map for the channels in this group
  • Method Details Link icon

    • getAlgorithmName Link icon

      public String getAlgorithmName()
      Returns:
      the algorithmName
    • setAlgorithmName Link icon

      public void setAlgorithmName(String algorithmName)
      Parameters:
      algorithmName - the algorithmName to set
    • getGroupNumber Link icon

      public int getGroupNumber()
      Returns:
      the groupNumber
    • setGroupNumber Link icon

      public void setGroupNumber(int groupNumber)
      Parameters:
      groupNumber - the groupNumber to set
    • getSerialversionuid Link icon

      public static long getSerialversionuid()
      Returns:
      the serialversionuid
    • getChannelMap Link icon

      public int getChannelMap()
      Returns:
      the channelMap
    • setChannelMap Link icon

      public void setChannelMap(int channelMap)
      Parameters:
      channelMap - the channelMap to set
    • getNumBeams Link icon

      public int getNumBeams()
      Returns:
      the numBeams
    • setNumBeams Link icon

      public void setNumBeams(int numBeams)
      Parameters:
      numBeams - the numBeams to set
    • getHeadings Link icon

      public int[] getHeadings()
      Returns:
      the headings
    • setHeadings Link icon

      public void setHeadings(int[] headings)
      Parameters:
      headings - the headings to set
    • getNumBeamogram Link icon

      public int getNumBeamogram()
      Returns:
      the numBeamogram
    • setNumBeamogram Link icon

      public void setNumBeamogram(int numBeamogram)
      Parameters:
      numBeamogram - the numBeamogram to set
    • getBeamOGramAngles Link icon

      public int[] getBeamOGramAngles()
      Returns:
      the beamOGramAngles
    • setBeamOGramAngles Link icon

      public void setBeamOGramAngles(int[] beamOGramAngles)
      Parameters:
      beamOGramAngles - the beamOGramAngles to set
    • getFreqRange Link icon

      public double[][] getFreqRange()
      Returns:
      the freqRange
    • setFreqRange Link icon

      public void setFreqRange(double[][] freqRange)
      Parameters:
      freqRange - the freqRange to set
    • getSlants Link icon

      public int[] getSlants()
      Return the slant angles for the individual beams. In some circumstances, such as for linear arrays, the slant angles will not have been defined. If this is the case, create a new array of size numBeams containing 0's, and pass that back to the calling method.
      Returns:
    • setSlants Link icon

      public void setSlants(int[] slants)
      Set the slant angles
      Parameters:
      slants -
    • getBeamOGramSlants Link icon

      public int[] getBeamOGramSlants()
      Returns:
    • setBeamOGramSlants Link icon

      public void setBeamOGramSlants(int[] beamOGramSlants)
      Parameters:
      beamOGramSlants -
    • clone Link icon

      public abstract BeamAlgorithmParams clone()
      Clone the fields in this abstract class, as well as any fields specific to the extended class. Extended classes must override this method to ensure the params get saved properly. See the BasicFreqDomParams.clone method for an example;
      Overrides:
      clone in class Object
    • getBeamOGramFreqRange Link icon

      public double[] getBeamOGramFreqRange()
      Returns:
      the beamOGramFreqRange
    • setBeamOGramFreqRange Link icon

      public void setBeamOGramFreqRange(double[] beamOGramFreqRange)
      Parameters:
      beamOGramFreqRange - the beamOGramFreqRange to set
    • isCanBeam Link icon

      public boolean isCanBeam()
      Whether or not this instance of the algorithm can/should allow the user to create individual beams. True = ok to show beams.
      Returns:
      True = ok to show beams.
    • setCanBeam Link icon

      public void setCanBeam(boolean canBeam)
      Whether or not this instance of the algorithm can/should allow the user to create individual beams. True = ok to show beams.
      Parameters:
      canBeam - True = ok to show beams.
    • isCanBeamogram Link icon

      public boolean isCanBeamogram()
      Whether or not this instance of the algorithm can/should allow the user to create a beamogram. True = ok to show beamogram
      Returns:
      True = ok to show beamogram
    • setCanBeamogram Link icon

      public void setCanBeamogram(boolean canBeamogram)
      Whether or not this instance of the algorithm can/should allow the user to create a beamogram. True = ok to show beamogram
      Parameters:
      canBeamogram - True = ok to show beamogram
    • getParameterSet Link icon

      public PamParameterSet getParameterSet()
      Description copied from interface: ManagedParameters
      Get a set of data that describes all of the parameters in a class
      Specified by:
      getParameterSet in interface ManagedParameters
      Returns:
      description of the parameters in a class.