# BeamformerSODIX¶

class acoular.fbeamform.BeamformerSODIX

SODIX, see Funke, Ein Mikrofonarray-Verfahren zur Untersuchung der Schallabstrahlung von Turbofantriebwerken, 2017. and Oertwig, Advancements in the source localization method SODIX and application to short cowl engine data, 2019

Source directivity modeling in the cross-spectral matrix

method = Trait('fmin_l_bfgs_b', desc="fit method used")

Type of fit method to be used (‘fmin_l_bfgs_b’). These methods is implemented in the scipy module.

max_iter = Int(200, …

Maximum number of iterations, tradeoff between speed and precision; defaults to 200

pnorm = Float(1,desc="Norm for regularization")

Norm to consider for the regularization defaults to L-1 Norm

alpha = Range(0.0, 1.0, 0.0, …

Weight factor for regularization, defaults to 0.0.

unit_mult = Float(1e9, …

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.

sodix_result = Property( …

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

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 and each microphone . Note that the frequency resolution and therefore the bandwidth represented by a single frequency line depends on the sampling frequency and conjugate used FFT block size.

calc(ac, fr)

Calculates the SODIX result for the frequencies defined by freq_data

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

Parameters
acarray of floats

This array of dimension ([number of frequencies]x[number of gridpoints]x[number of microphones]) is used as call-by-reference parameter and contains the calculated

#/= unit value after calling this method.

frarray 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