A Julia package for Aeroacoustics and acoustic imaging.
Installation • Tests • Documentation • Citation
This package provide methods for working with microphone array measurements. Utilities for processing beamforming and other acoustic imaging methods are collected in this package, and it is the intention, that a suite of both well-known and state of the art methods is continuously updated.
The current set of methods include conventional frequency domain beamforming (CBF) with source power integration (SPI), and the following advanced methods:
Method | Reference |
---|---|
DAMAS | Brooks, T. F. et al. (2006). A deconvolution approach for the mapping of acoustic sources (DAMAS) determined from phased microphone arrays. J. Sound Vib. 294(4), 856–879. https://doi.org/10.1016/j.jsv.2005.12.046 |
CLEAN-SC | Sijtsma, P. (2007). CLEAN based on spatial source coherence. Int.J.Aeroacou. 6(4), 357–374. https://doi.org/10.1260/147547207783359459 |
FISTA | - Beck, A., & Teboulle, M. (2009). A fast iterative shrinkage-thresholding algorithm for linear inverse problems. SIAM J. Imag. Sci., 2(1), 183-202. https://doi.org/10.1137/080716542 - Lylloff, O., et al. (2015). Improving the efficiency of deconvolution algorithms for sound source localization. J. Acou. Soc. Am, 138(1), 172-180. https://doi.org/10.1121/1.4922516 |
On the roadmap is:
Method | Reference |
---|---|
Functional beamforming | Dougherty, R.P. (2014). Functional beamforming. 5th Berlin Beamforming Conference, February 19–20 2014, Berlin, Germany, GFaI, e.V., Berlin. |
Orthogonal beamforming | Sarradj, E. (2010). A fast signal subspace approach for the determination of absolute levels from phased microphone array measurements. J. Sound Vib. 329(9), 1553–1569. https://doi.org/10.1016/j.jsv.2009.11.009 |
Spectral Estimation Method (SEM) / Covariance Matrix Fitting (CMF) |
Blacodon, D. et al. (2004). Level estimation of extended acoustic sources using a parametric method. J. Airc. 41, 1360–1369. https://doi.org/10.2514/1.3053 Yardibi, T. et al. (2010). A covariance fitting approach for correlated acoustic source mapping. J. Acoust. Soc. Am. 127(5), 2920–2931. https://doi.org/10.1121/1.3365260 |
Generalized Inverse Beamforming (GIBF) | Suzuki, T. (2011). L1 generalized inverse beamforming algorithm resolving coherent/incoherent, distributed and multipole sources. J. Sound Vib. 330(24), 5835–5851. https://doi.org/10.1016/j.jsv.2011.05.021 |
Additional methods can also be added by contributors to this repository. The code structure enables an easy and modular addition of new methods.
Denoising of the cross-spectral matrix is another important part of succesful acoustic imaging. Several different methods are on the roadmap to be implemented.
Source integration of acoustic images is another important feature of this package. The output can be produced in narrow-band, 1/3rd or 1/12th octave bands.
First install Julia and start Julia in a terminal, VS code, Jupyter or another application that can run Julia. This package is registered and can be installed with
pkg> add AeroAcoustics
the package manager pkg>
can be accessed by typing ]
.
This package constains tests used for CI, but can also be used to check if the package is working properly when installed. To run the tests, after adding the package, activate the package manager, by typing ]
, and write
pkg> test AeroAcoustics
The test suite will download an external file, that is stored in test/data
.
The documentation gives an introduction to the packages and the API.
Any question regarding the installation, use or extension of the code can be posted in the Github issue tracker. If you want to add an new algorithm, you can fork this package and start developing your code and test it. If you wish to contribute to the general development, you can look for open issues or reach out to discuss further. Contributions are very welcome!
Another noteworthy library for microphone array measurements is Acoular, written in Python. AeroAcoustics.jl draws inspiration from Acoular but focusses only on the processing of measurement data, while Acoular also has functionality for generating simulated data.
If you use this package in your work, please cite the following:
@article{lylloff2024aeroacoustics,
doi = {10.21105/joss.06390},
url = {https://joss.theoj.org/papers/10.21105/joss.06390},
year = {2024},
publisher = {The Open Journal},
journal = {Journal of Open Source Software},
volume = {9},
number = {97},
pages = {6390},
author = {Oliver Lylloff},
title = {AeroAcoustics.jl: A Julia package for aeroacoustics} }