tbeamform#
Implements beamformers in the time domain.
Provides a basic time domain beamformer with time signal output. |
|
Provides a basic time domain beamformer with time signal output. |
|
Time domain beamformer with squared output and optional autopower removal. |
|
Time domain beamformer with squared output for a grid moving along a trajectory. |
|
CLEANT deconvolution method. |
|
CLEANT deconvolution method. |
|
CLEANT deconvolution method with optional removal of autocorrelation. |
|
CLEANT deconvolution method with optional removal of autocorrelation. |
|
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:
TimeOutProvides a basic time domain beamformer with time signal output.
for a spatially fixed grid.
- source = Instance(SamplesGenerator)#
Data source;
SamplesGeneratoror 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerTimeSq#
Bases:
BeamformerTimeTime 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerTimeTraj#
Bases:
BeamformerTimeProvides 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')#
Trajectoryor 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:
- tpos
numpy.ndarray Grid positions.
- tpos
- Returns:
floatornumpy.ndarrayReference 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerTimeSqTraj#
Bases:
BeamformerTimeSq,BeamformerTimeTrajTime 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerCleant#
Bases:
BeamformerTimeCLEANT 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerCleantSq#
Bases:
BeamformerCleantCLEANT 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
Gridat t=0. Per default, block-wise removal of autocorrelation is performed, which can be turned of by settingr_diagto False.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerCleantTraj#
Bases:
BeamformerCleant,BeamformerTimeTrajCLEANT 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
Gridat t=0.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.BeamformerCleantSqTraj#
Bases:
BeamformerCleantTraj,BeamformerTimeSqCLEANT 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
Gridat t=0. Per default, block-wise removal of autocorrelation is performed, which can be turned of by settingr_diagto False.- Parameters:
- num
int This parameter defines the size of the blocks to be yielded (i.e. the number of samples per block). Defaults to 2048.
- num
- Yields:
numpy.ndarray- Samples in blocks of shape (
num,num_channels). num_channelsis usually very large (number of grid points). The last block returned by the generator may be shorter thannum.
- Samples in blocks of shape (
- class acoular.tbeamform.IntegratorSectorTime#
Bases:
TimeOutProvides an Integrator in the time domain.
- source = Instance(SamplesGenerator)#
Data source;
SamplesGeneratoror derived object.
- grid = Instance(RectGrid, desc='beamforming grid')#
RectGridobject 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:
- num
int Size of the blocks to be yielded (number of samples per block). Default is
1.
- num
- Returns:
numpy.ndarraySamples in blocks of shape (
num,num_channels).num_channelsis the number of sectors.- The last block may be shorter than num.