Acoular 16.5 documentation

BeamformerBase

«  acoular.fbeamform.integrate   ::   fbeamform   ::   BeamformerFunctional  »

BeamformerBase

class acoular.fbeamform.BeamformerBase

Bases: traits.has_traits.HasPrivateTraits

Beamforming using the basic delay-and-sum algorithm in the frequency domain.

freq_data = Trait(PowerSpectra, desc="freq data object")

PowerSpectra object that provides the cross spectral matrix.

grid = Trait(Grid, desc="beamforming grid")

Grid-derived object that provides the grid locations.

mpos = Trait(MicGeom, desc="microphone geometry")

MicGeom object that provides the microphone locations.

env = Trait(Environment(), Environment)

Environment or derived object, which provides information about the sound propagation in the medium.

c = Float(343., desc="speed of sound")

The speed of sound, defaults to 343 m/s

r_diag = Bool(True, desc="removal of diagonal")

Boolean flag, if ‘True’ (default), the main diagonal is removed before beamforming.

steer = Trait('true level', 'true location', 'classic', 'inverse', desc="type of steering vectors used")

Type of steering vectors, see also Sarradj, 2012.

cached = Bool(True, desc="cached flag")

Boolean flag, if ‘True’ (default), the result is cached in h5 files.

result = Property( desc="beamforming result")

The beamforming result as squared sound pressure values at all grid point locations (readonly). Returns a (number of frequencies, number of gridpoints) array of float

r0 = Property( desc="array center to grid distances")

Sound travel distances from microphone array center to grid points (readonly).

rm = Property( desc="array center to grid distances")

Sound travel distances from array microphones to grid points (readonly).

get_beamfunc(os='')

Returns the proper low-level beamforming routine (implemented in C). This function is only called internally by the calc() routine.

calc(ac, fr)

Calculates the delay-and-sum beamforming result for the frequencies defined by freq_data

This is an internal helper function that is automatically called when accessing the beamformer’s result or calling its synthetic() method.

Parameters:

ac : array of floats

This array of dimension ([number of frequencies]x[number of gridpoints]) is used as call-by-reference parameter and contains the calculated value after calling this method.

fr : array of booleans

The entries of this [number of frequencies]-sized array are either ‘True’ (if the result for this frequency has already been calculated) or ‘False’ (for the frequencies where the result has yet to be calculated). After the calculation at a certain frequency the value will be set to ‘True’

Returns:

This method only returns values through the ac and fr parameters

synthetic(f, num=0)

Evaluates the beamforming result for an arbitrary frequency band.

Parameters:

f: float

Band center frequency.

num : integer

Controls the width of the frequency bands considered; defaults to 0 (single frequency line).

num frequency band width
0 single frequency line
1 octave band
3 third-octave band
n 1/n-octave band
Returns:

array of floats

The synthesized frequency band values of the beamforming result at each grid point . Note that the frequency resolution and therefore the bandwidth represented by a single frequency line depends on the sampling frequency and used FFT block size.

integrate(sector)

Integrates result map over a given sector.

Parameters:

sector: array of floats

Tuple with arguments for the ‘indices’ method of a Grid-derived class (e.g. RectGrid.indices or RectGrid3D.indices). Possible sectors would be array([xmin, ymin, xmax, ymax]) or array([x, y, radius]).

Returns:

array of floats

The spectrum (all calculated frequency bands) for the integrated sector.

«  acoular.fbeamform.integrate   ::   fbeamform   ::   BeamformerFunctional  »