Class BasicFreqDomBeamFormer

java.lang.Object
beamformer.algorithms.basicFreqDomain.BasicFreqDomBeamFormer
All Implemented Interfaces:
BeamFormerAlgorithm

public class BasicFreqDomBeamFormer extends Object implements BeamFormerAlgorithm
A basic frequency-domain beamformer
Author:
mo55
  • Constructor Details

    • BasicFreqDomBeamFormer

      public BasicFreqDomBeamFormer(BasicFreqDomBeamProvider basicFreqDomBeamProvider, BeamFormerBaseProcess beamFormerProcess, BasicFreqDomParams basicFreqDomParams, int firstBeamNum, int beamogramNum)
      Parameters:
      basicFreqDomBeamProvider -
      beamFormerProcess -
      basicFreqDomParams -
      firstBeamNum -
      channelMap -
  • Method Details

    • prepare

      public void prepare()
      Prepare the beams for data.
      Specified by:
      prepare in interface BeamFormerAlgorithm
    • process

      public void process(FFTDataUnit[] fftDataUnits)
      Process an array of FFTDataUnits. The size of the array will equal the number of channels in this beam group
      Specified by:
      process in interface BeamFormerAlgorithm
      Parameters:
      fftDataUnits - array of FFT data units.
    • thereIsABeamogram

      public boolean thereIsABeamogram()
      Returns a boolean indicating whether or not this beamformer is creating a beamogram
      Specified by:
      thereIsABeamogram in interface BeamFormerAlgorithm
      Returns:
    • getNumBeams

      public int getNumBeams()
      Return the number of beams.
      Specified by:
      getNumBeams in interface BeamFormerAlgorithm
      Returns:
      number of output beams
    • getBeamInformation

      public BeamInformation getBeamInformation(int iBeam)
      Description copied from interface: BeamFormerAlgorithm
      Get information about a specific beam. I've currently no idea whatsoever what information we're going to include here !
      Specified by:
      getBeamInformation in interface BeamFormerAlgorithm
      Returns:
      See Also:
    • setBeamformerOutput

      public void setBeamformerOutput(BeamFormerDataBlock beamformerOutput)
      Parameters:
      beamformerOutput - the beamformerOutput to set
    • getBeamProcess

      public BeamFormerBaseProcess getBeamProcess()
      Returns:
      the beamProcess
    • getSequenceMap

      public int getSequenceMap()
      Get the sequence map for the beams created by this beamformer
      Returns:
      the sequenceMap
    • getNumBeamogramAngles

      public int getNumBeamogramAngles()
      Description copied from interface: BeamFormerAlgorithm
      Get the number of angles used in the beamogram calculation. Note that at the moment all beamograms must use the same angles in order be able to add their data to the common PamDataBlock. The BasicFreqDomParams object defines the beamogram angles as from 0 deg to 180 deg in 2 degree steps (91 angles total). This should be matched in all other algorithms capable of creating beamograms, until changes can be made to accomodate different PamDataUnit sizes in the same PamDataBlock.
      Specified by:
      getNumBeamogramAngles in interface BeamFormerAlgorithm
      Returns:
      the number of angles used in the beamogram calculation
    • setKeepFrequencyInformation

      public void setKeepFrequencyInformation(boolean keep)
      Description copied from interface: BeamFormerAlgorithm
      Tell the algorithm to keep frequency information in beamOGram output.
      Specified by:
      setKeepFrequencyInformation in interface BeamFormerAlgorithm
    • setFrequencyBinRange

      public void setFrequencyBinRange(int binFrom, int binTo)
      Description copied from interface: BeamFormerAlgorithm
      Set a frequency bin range for the BeamOGram analysis.
      Beam forming will take place between binFrom to binTo.
      (Not inclusive - so binTo can equal fftLength/2 process loop is for (int i = binFrom; i invalid input: '<' bnTo; i++)).
      Specified by:
      setFrequencyBinRange in interface BeamFormerAlgorithm
      Parameters:
      binFrom - first bin to process
      binTo - last bin to process