sfs-matlab
sfs-matlab copied to clipboard
Representation of sound fields and driving functions as circular and spherical harmonics
Background
Data based Sound Field Synthesis has not been covered in the Sound Field Synthesis Toolbox, so far, as most of the implemented algorithms are based on mathematical models of the desired sound field. The expansion of sound fields into circular or spherical basis functions is common approach to describe arbitrary sound fields. It is also implicitly used in Near-Field-Compensated Higher Order Ambisonics.
Scheme
The image illustrates the current implementations in master
(blue) and the additional implementations in harmonics
(red) for the spherical case. Same holds for the circular case. The graph shows, how to get from a parameterization, i.e x_s
, to the desired sound field S
or the synthesized sound field P
. D
denotes the driving function.
TODO List
Circular/Spherical Expansion of Sound Fields
- [x] decompose point sources, line sources and plane waves into circular and/or spherical basis functions
- [x] scatter sound fields by cylinders or spheres
- [x] time-reverse sound fields by applying time-reversal to the expansion coefficients
- [ ] adapt
sound_field_< >exp
functions to support recently introduced non-regular grids
Driving Functions in spatial domain
- [x] 2D, 2.5D, 3D WFS of spherical expansion
SFS_monochromatic/driving_functions_mono/driving_function_mono_wfs_sphexp.m
- [x] 2D, 2.5D, 3D WFS of circular expansion
SFS_monochromatic/driving_functions_mono/driving_function_mono_wfs_circexp.m
- [x] 2D, 2.5D, 3D NFC-HOA of spherical expansion
SFS_monochromatic/driving_functions_mono/driving_function_mono_nfchoa_sphexp.m
- [x] 2D, 2.5D, 3D NFC-HOA of circular expansion
SFS_monochromatic/driving_functions_mono/driving_function_mono_nfchoa_circexp.m
Driving Functions in spatio-spectral domain
- [x] move
kx
driving functions to seperate directorySFS_monochromatic/kx/
- [ ] circular harmonics transforms of driving functions
SFS_monochromatic/cht/
- [x] spherical harmonics transforms of driving functions
SFS_monochromatic/sht/
Testing/Validation functions
- [ ] conversion from circular/spherical expansion to spatial sound field
- [x] synthesis of sound fields expressed in circular/spherical harmonics
test_sfs_exp
Misc.
- [ ] switch to recently introduced mandatory conf struct
- [ ] replace 2 space indent with 4 space
- [ ] fix function calls
Maybe the following functions could be replaced by their recurrence relation
sphbesselh_derived
sphbesselj_derived
sphbessely_derived
besselh_derived
besselj_derived
bessely_derived
Also this might not be necessary:
isargsquaredinteger.m
Can you please make sure that you use always 4 spaces as tab in for loops etc. and also that you have no spaces between ,
and arguments in function calls:
f(a, b, c)
=> f(a,b,c)
.
This would be nice to maintain consistency across all functions in the Toolbox.
I added it to the TODO list
If I remember correctly, we included some (or most?) of your proposals by other pull requests. What is the current status and plan for this pull request?
I would suggest to wait for the upcoming discussions on the DAGA poster for SFS Toolbox. Then I will have a more holistic view on what is already implemented and what might be taken from this PR.