SteeringVector#

class acoular.fbeamform.SteeringVector

Bases: HasStrictTraits

Basic class for implementing steering vectors with monopole source transfer models.

Handles four different steering vector formulations. See [3] for details.

grid = Instance(Grid)

Grid-derived object that provides the grid locations.

mics = Instance(MicGeom)

MicGeom object that provides the microphone locations.

steer_type = Enum('true level', 'true location', 'classic', 'inverse')

Type of steering vectors, see also [3]. Defaults to ‘true level’.

env = Instance(Environment(), Environment)

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

r0 = Property()

Sound travel distances from microphone array center to grid : points or reference position (readonly). Feature may change.

rm = Property()

Sound travel distances from array microphones to grid : points (readonly). Feature may change.

ref = Property()

Reference position or distance at which to evaluate the sound pressure of a grid point. If set to a scalar, this is used as reference distance to the grid points. If set to a vector, this is interpreted as x,y,z coordinates of the reference position. Defaults to [0.,0.,0.].

digest = Property(depends_on=['steer_type', 'env.digest', 'grid.digest', 'mics.digest', '_ref'])

A unique identifier for the steering vector, based on its properties. (read-only)

inv_digest = Property(depends_on=['env.digest', 'grid.digest', 'mics.digest', '_ref'])

A unique identifier for the grid, excluding steer_type. Use for inverse methods. (read-only)

transfer(f, ind=None)

Calculates the transfer matrix for one frequency.

Parameters:
ffloat

Frequency for which to calculate the transfer matrix

ind(optional) array of ints

If set, only the transfer function of the gridpoints addressed by the given indices will be calculated. Useful for algorithms like CLEAN-SC, where not the full transfer matrix is needed

Returns:
array of complex128

array of shape (ngridpts, nmics) containing the transfer matrix for the given frequency

steer_vector(f, ind=None)

Calculates the steering vectors based on the transfer function.

See also [3].

Parameters:
ffloat

Frequency for which to calculate the transfer matrix

ind(optional) array of ints

If set, only the steering vectors of the gridpoints addressed by the given indices will be calculated. Useful for algorithms like CLEAN-SC, where not the full transfer matrix is needed

Returns:
array of complex128

array of shape (ngridpts, nmics) containing the steering vectors for the given frequency