tbeamform#

Implements beamformers in the time domain.

Inheritance diagram of acoular.tbeamform

BeamformerTime

Provides a basic time domain beamformer with time signal output.

BeamformerTimeTraj

Provides a basic time domain beamformer with time signal output.

BeamformerTimeSq

Time domain beamformer with squared output and optional autopower removal.

BeamformerTimeSqTraj

Time domain beamformer with squared output for a grid moving along a trajectory.

BeamformerCleant

CLEANT deconvolution method.

BeamformerCleantTraj

CLEANT deconvolution method.

BeamformerCleantSq

CLEANT deconvolution method with optional removal of autocorrelation.

BeamformerCleantSqTraj

CLEANT deconvolution method with optional removal of autocorrelation.

IntegratorSectorTime

Provides an Integrator in the time domain.

acoular.tbeamform.const_power_weight(bf)#

Internal helper function for BeamformerTime.

Provides microphone weighting to make the power per unit area of the microphone array geometry constant.

Parameters:
bf: :class:`BeamformerTime` object
Returns:
array of floats

The weight factors.

class acoular.tbeamform.BeamformerTime#

Bases: TimeOut

Provides a basic time domain beamformer with time signal output.

for a spatially fixed grid.

source = Instance(SamplesGenerator)#

Data source; SamplesGenerator or derived object.

num_channels = Property()#

Number of channels in output (=number of grid points).

weights = Map(possible_weights, default_value='none', desc='spatial weighting function')#

Spatial weighting function.

result(num=2048)#

Python generator that yields the time-domain beamformer output.

The output time signal starts for source signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerTimeSq#

Bases: BeamformerTime

Time domain beamformer with squared output and optional autopower removal.

Provides a time domain beamformer with time-dependend power signal output and possible autopower removal for a spatially fixed grid.

r_diag = Bool(True, desc='removal of diagonal')#

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

result(num=2048)#

Python generator that yields the squared time-domain beamformer output.

The squared output time signal starts for source signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerTimeTraj#

Bases: BeamformerTime

Provides a basic time domain beamformer with time signal output.

for a grid moving along a trajectory.

trajectory = Instance(Trajectory, desc='trajectory of the grid center')#

Trajectory or derived object. Start time is assumed to be the same as for the samples.

rvec = CArray(dtype=float, shape=(3,), value=np.array((0, 0, 0)), desc='reference vector')#

Reference vector, perpendicular to the y-axis of moving grid.

conv_amp = Bool(False, desc='determines if convective amplification of source is considered')#

Considering of convective amplification in beamforming formula.

precision = Enum(64, 32, desc='numeric precision')#

Floating point and integer precision

get_r0(tpos)#

Get reference distance for grid positions.

Parameters:
tposnumpy.ndarray

Grid positions.

Returns:
float or numpy.ndarray

Reference distance(s).

result(num=2048)#

Python generator that yields the time-domain beamformer output.

The output time signal starts for source signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerTimeSqTraj#

Bases: BeamformerTimeSq, BeamformerTimeTraj

Time domain beamformer with squared output for a grid moving along a trajectory.

Provides a time domain beamformer with time-dependent power signal output and possible autopower removal for a grid moving along a trajectory.

result(num=2048)#

Python generator that yields the squared time-domain beamformer output.

The squared output time signal starts for source signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerCleant#

Bases: BeamformerTime

CLEANT deconvolution method.

An implementation of the CLEAN method in time domain. This class can only be used for static sources. See [19] for details.

r_diag = Enum(False, desc='False, as we do not remove autopower in this beamformer')#

Boolean flag, always False

damp = Range(0.01, 1.0, 0.6, desc='damping factor (loop gain)')#

iteration damping factor also referred as loop gain in Cousson et al. defaults to 0.6

n_iter = Int(100, desc='maximum number of iterations')#

max number of iterations

result(num=2048)#

Python generator that yields the deconvolved time-domain beamformer output.

The output starts for signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerCleantSq#

Bases: BeamformerCleant

CLEANT deconvolution method with optional removal of autocorrelation.

An implementation of the CLEAN method in time domain. This class can only be used for static sources. See [19] for details on the method and [20] for details on the autocorrelation removal.

r_diag = Bool(True, desc='removal of diagonal')#

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

result(num=2048)#

Python generator that yields the squared deconvolved time-domain beamformer output.

The output starts for signals that were emitted from the Grid at t=0. Per default, block-wise removal of autocorrelation is performed, which can be turned of by setting r_diag to False.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerCleantTraj#

Bases: BeamformerCleant, BeamformerTimeTraj

CLEANT deconvolution method.

An implementation of the CLEAN method in time domain for moving sources with known trajectory. See [19] for details.

precision = Enum(32, 64, desc='numeric precision')#

Floating point and integer precision

result(num=2048)#

Python generator that yields the deconvolved time-domain beamformer output.

The output starts for signals that were emitted from the Grid at t=0.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.BeamformerCleantSqTraj#

Bases: BeamformerCleantTraj, BeamformerTimeSq

CLEANT deconvolution method with optional removal of autocorrelation.

An implementation of the CLEAN method in time domain for moving sources with known trajectory. See [19] for details on the method and [20] for details on the autocorrelation removal.

r_diag = Bool(True, desc='removal of diagonal')#

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

result(num=2048)#

Python generator that yields the squared deconvolved time-domain beamformer output.

The output starts for signals that were emitted from the Grid at t=0. Per default, block-wise removal of autocorrelation is performed, which can be turned of by setting r_diag to False.

Parameters:
numint

This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.

Yields:
numpy.ndarray
Samples in blocks of shape (num, num_channels).

num_channels is usually very large (number of grid points). The last block returned by the generator may be shorter than num.

class acoular.tbeamform.IntegratorSectorTime#

Bases: TimeOut

Provides an Integrator in the time domain.

source = Instance(SamplesGenerator)#

Data source; SamplesGenerator or derived object.

grid = Instance(RectGrid, desc='beamforming grid')#

RectGrid object that provides the grid locations.

sectors = List()#

List of sectors in grid

clip = Float(-350.0)#

Clipping, in Decibel relative to maximum (negative values)

num_channels = Property(depends_on=['sectors'])#

Number of channels in output (= number of sectors).

result(num=1)#

Python generator that yields the source output integrated over specified grid sectors.

Parameters:
numint

Size of the blocks to be yielded (number of samples per block). Default is 1.

Returns:
numpy.ndarray

Samples in blocks of shape (num, num_channels).

num_channels is the number of sectors.
The last block may be shorter than num.