3-D HRTF interpolation
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)
Reference:
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
Cite As
Hannes (2025). 3-D HRTF interpolation (https://www.mathworks.com/matlabcentral/fileexchange/43809-3-d-hrtf-interpolation), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Mathematics > Interpolation >
- Simulink > Simulation >
- Image Processing and Computer Vision > Computer Vision Toolbox > Point Cloud Processing >
- MATLAB > Mathematics > Computational Geometry > Delaunay Triangulation >
Tags
Acknowledgements
Inspired by: octree - partitioning 3D points into spatial subvolumes
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.5.0.0 | fixed call to Delaunay to support earlier Matlab versions ( < 2009b) |
||
1.4.0.0 | removed tilde placeholders in function output calls for backward compatibility with Matlab versions earlier than 2009b |
||
1.3.0.0 | updated reference and link to JASA article |
||
1.2.0.0 | Tags, comments |
||
1.1.0.0 | Added comments and references. |
||
1.0.0.0 |