AudioGroupCologne / SUpDEq

SUpDEq - Spatial Upsampling by Directional Equalization
Apache License 2.0
25 stars 7 forks source link

Sagittal vs Horizontal plane interpolation #3

Closed davircarvalho closed 3 years ago

davircarvalho commented 3 years ago

Hello, I am comparing interpolation results accross multiple databases, and I have noticed for some of them the interpolation in the Sagittal plane returns huge erros while the in the Horizontal plane the results seems to be very similar to the measured HRTF, as desired.

The datasets I have observed this behaviour are the ARI, AACHEN and the 3D3A Lab. The script is setup pretty much as showed in the demo except for

Nmax = floor(sqrt(IR.API.M/4)); FFToversize = 4; sparseHRTFdataset = supdeq_sofa2hrtf(sparseHRIRdataset_SOFA,Nmax,[],FFToversize);

Is there anything I can do make it produce better interpolation at the Sagittal plane as well?

Any help is appreciated!

AudioGroupCologne commented 3 years ago

Hello, your way to get the "sparse" HRTF set looks fine to me. Also that you have worse results in the median-sagittal plane is a usual issue.

One problem with ARI or the Aachen database is that the lower spherical cap is missing and thus the SH transform might lead to wrong coefficients as the problem is ill-posed. I would recommend to use in supdeq_eq the least-squares solution with Tikhonov regularization (epsilon = 10^-6 - 10^-4), i.e., simply pass a value for the variable tikhEps. Working with data where the lower spherical cap is missing, this provided much better results in our tests. It is also the way how colleagues from Aachen transformed their HRTFs to SH domain (see e.g., Pollow, 2015, Doctoral Dissertation).

In a future update, we will provide a more comprehensive and easier to use upsampling function combining various methods for spatial upsampling of HRTFs. Using this function, it should be easier to get good results also for datasets which are not fully spherical.