Matlab demonstration of an algorithm for interpolating distance-dependent (near-field) head-related transfer functions (HRTFs).
The interpolation is performed using barycentric weights of 4 HRTF measurements forming a tetrahedron that encloses the desired source position.
The main steps of the interpolation algorithm are:
1) Initialisation: organise HRTF measurement positions in tetrahedral mesh via Delaunay triangulation and generate an octree;
2) Source update: find a tetrahedron that encloses the desired source position (via brute-force search, or via adjacency walk with/without octree lookup);
3) Interpolation: calculate barycentric weights for linear interpolation of HRTF measurements at the vertices of the tetrahedron selected in 2)
Gamper, H. (2013). "Head-related transfer function interpolation in azimuth, elevation, and distance", Journal of the Acoustical Society of America 134(6), JASA EL547-EL554. Available online: http://link.aip.org/link/?JAS/134/EL547/1
Hannes (2021). 3-D HRTF interpolation (https://www.mathworks.com/matlabcentral/fileexchange/43809-3-d-hrtf-interpolation), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!