A collection of MATLAB scripts and functions to simulate simple linear acoustic beamformers.
Important
This is a complete rewrite of the original code, which was unnecessarily complicated and unstable in certain regimes (multiple sources).
These new scripts have been written from the ground up with simplicity and clarity in mind and have been validated against existing libraries.
We use the standard mathematical angle convention (i.e.,
Implements a simple Bartlett1/DAS DoA estimator.
In this case, the estimator is simply the maximal power output
Implements the Capon beamformer.
In this case, the estimator is the maximal SNR/metric
Implements the ESPRIT (Estimation of signal parameters via rotational invariance techniques) algorithm for bearing estimation. Retruns value of estimated bearing. In this case, the bearing is estimated by a singular value decompostition of the convariance matrix, then extract the signal subspace. The array is then divided into subarrays (trucated signal subspaces), the Eigenvalues of the rotation matrix connecting the subarrarys can then be used to find the radial frequency.
Simply compute the SPL of the beamformer outputs and plots it as a function of scanning angle,
Computes the position vectors of the elements in a linear array.
The elements are distributed along the line
Important
In previous versions, the array was distributed symmetrically about
Computes the array response vector, given the position of the receivers. Assumes that the array is uniform (i.e., that the receivers are distributed uniformly in space).
Computes the forwards-backwards spatially smoothed sample covariance matrix.
A simple script to estimate DoA of a temporally random plane wave. The script incorporates uncorrelated AWGN sensor noise. Bartlett and Capon beamformers are compared. Calls some of the above functions.
Parameters chosen in order to validate performance against the existing pyArgus library.
Based on DoA.m, but for different configurations.
Includes:
- DoA_timeharmonic.m: Implements single time-harmonic source
- DoA_spatialsmoothing.m: Implements forward-backward spatial smoothing with multiple coherent sources.
Relevant Theory can be found in Van Trees, H. Optimum Array Processing. New York: Wiley, 2002.
- Test time-harmonic source
- Stress-test code for multiple uncorrelated signals
- Implement spatial smoothing for multiple correlated signals
- Implement beam steering
- Stress-test code for extreme parameter values
Footnotes
-
I have change from using Delay-And-Sum to Bartlett when referring to this type of beamerformer because I am a massive fan of The West Wing. ↩