BeamformerCMF#
- class acoular.fbeamform.BeamformerCMF
Bases:
BeamformerBaseCovariance Matrix Fitting algorithm.
This is not really a beamformer, but an inverse method. See [11] for details.
- method
Type of fit method to be used (âLassoLarsâ, âLassoLarsBICâ, âOMPCVâ or âNNLSâ, defaults to âLassoLarsâ). These methods are implemented in the scikit-learn module.
- alpha
Weight factor for LassoLars method, defaults to 0.0. (Use values in the order of 10^âť9 for good results.)
- n_iter
Total or maximum number of iterations (depending on
method), tradeoff between speed and precision; defaults to 500
- unit_mult
Unit multiplier for evaluating, e.g., nPa instead of Pa. Values are converted back before returning. Temporary conversion may be necessary to not reach machine epsilon within fitting method algorithms. Defaults to 1e9.
- show
If True, shows the status of the PyLops solver. Only relevant in case of FISTA or Split_Bregman
- r_diag_norm
Energy normalization in case of diagonal removal not implemented for inverse methods.
- digest
A unique identifier for the beamformer, based on its properties. (read-only)
- integrate(sector, frange=None, num=0)
Integrates result map over a given sector.
- Parameters:
- sector: array of floats or :class:`~acoular.grids.Sector`
either an array, tuple or list with arguments for the âindicesâ method of a
Grid-derived class (e.g.RectGrid.indicesorRectGrid3D.indices). Possible sectors would be array([xmin, ymin, xmax, ymax]) or array([x, y, radius]) or an instance of aSector-derived class- frange: tuple or None
a tuple of (fmin,fmax) frequencies to include in the result if num*==0, or band center frequency/frequencies for which to return the results if *num>0; if None, then the frequency range is determined from the settings of the
PowerSpectra.ind_lowandPowerSpectra.ind_highoffreq_data- numinteger
Controls the width of the frequency bands considered; defaults to 0 (single frequency line). Only considered if frange is not None.
num
frequency band width
0
single frequency line
1
octave band
3
third-octave band
n
1/n-octave band
- Returns:
- res or (f, res): array of floats or tuple(array of floats, array of floats)
If frange*==None or *num>0, the spectrum (all calculated frequency bands) for the integrated sector is returned as res. The dimension of this array is the number of frequencies given by
freq_dataand entries not computed are zero. If frange!=None and num*==0, then (f, res) is returned where *f are the (band) frequencies and the dimension of both arrays is determined from frange
- sig_loss_norm()
If the diagonal of the CSM is removed one has to handle the loss of signal energy.
Done via a normalization factor.
- synthetic(f, num=0)
Evaluates the beamforming result for an arbitrary frequency band.
- Parameters:
- f: float
Band center frequency.
- numinteger
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 frequencyand usedFFT block size.
- steer
Instance of
SteeringVectoror its derived classes that contains information about the steering vector. This is a private trait. Do not set this directly, use steer trait instead.
- freq_data
PowerSpectraobject that provides the cross spectral matrix and eigenvalues
- r_diag
Boolean flag, if âTrueâ (default), the main diagonal is removed before beamforming.
- precision
Floating point precision of property result. Corresponding to numpy dtypes. Default = 64 Bit.
- cached
Boolean flag, if âTrueâ (default), the result is cached in h5 files.
- result
The beamforming result as squared sound pressure values at all grid point locations (readonly). Returns a (number of frequencies, number of gridpoints) array-like of floats. Values can only be accessed via the index operator [].