# Acoular 18.01 documentation

class acoular.fbeamform.PointSpreadFunction

Bases: traits.has_traits.HasPrivateTraits

This class provides tools to calculate the PSF depending on the used microphone geometry, focus grid, flow environment, etc. The PSF is needed by several deconvolution algorithms to correct the aberrations when using simple delay-and-sum beamforming.

grid = Trait(Grid, desc="beamforming grid")

Grid-derived object that provides the grid locations.

grid_indices = CArray( dtype=int, value=array([]), desc="indices of grid points for psf") #value=array([]), value=self.grid.pos(),

Indices of grid points to calculate the PSF for.

mpos = Trait(MicGeom, desc="microphone geometry")

MicGeom object that provides the microphone locations.

env = Trait(Environment(), Environment)

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

c = Float(343., desc="speed of sound")

The speed of sound, defaults to 343 m/s

steer = Trait('true level', 'true location', 'classic', 'inverse', desc="type of steering vectors used")

calcmode = Trait('single', 'block', 'full', 'readonly', desc="mode of calculation / storage")

Flag that defines how to calculate and store the point spread function defaults to ‘single’.

• ‘full’: Calculate the full PSF (for all grid points) in one go (should be used if the PSF at all grid points is needed, as with DAMAS)
• ‘single’: Calculate the PSF for the grid points defined by grid_indices, one by one (useful if not all PSFs are needed, as with CLEAN)
• ‘block’: Calculate the PSF for the grid points defined by grid_indices, in one go (useful if not all PSFs are needed, as with CLEAN)
• ‘readonly’: Do not attempt to calculate the PSF since it should already be cached (useful if multiple processes have to access the cache file)
freq = Float(1.0, desc="frequency")

Frequency to evaluate the PSF for; defaults to 1.0.

r0 = Property( desc="array center to grid distances")

Sound travel distances from microphone array center to grid points (readonly).

rm = Property( desc="array to grid distances")

Sound travel distances from array microphones to grid points (readonly).

psf = Property( desc="point spread function")

precision = Trait('float64', 'float32', desc="precision (32/64 Bit) of result, corresponding to numpy dtypes")