Home > SUpDEq-v5.0.0 > materials > get_sparse_HRTF_set_Lebedev.m

get_sparse_HRTF_set_Lebedev

PURPOSE ^

% SUpDEq - Spatial Upsampling by Directional Equalization

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

% SUpDEq - Spatial Upsampling by Directional Equalization

 script get_sparse_HRTF_set_Lebedev

 Just a small script to show how to get a sparse HRTF dataset based on the
 reference HRTF dataset 'HRIRs_sfd_Nx' or 'HRIRs_NF150_sfd_Nx'.
 Field sourceDistance is used if available. Important for DVF (distance
 variation function) processing with 'HRIRs_NFxxx' as reference.

 (C) 2018 by JMA, Johannes M. Arend
             TH Köln - University of Applied Sciences
             Institute of Communications Engineering
             Department of Acoustics and Audio Signal Processing

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %% SUpDEq - Spatial Upsampling by Directional Equalization
0002 %
0003 % script get_sparse_HRTF_set_Lebedev
0004 %
0005 % Just a small script to show how to get a sparse HRTF dataset based on the
0006 % reference HRTF dataset 'HRIRs_sfd_Nx' or 'HRIRs_NF150_sfd_Nx'.
0007 % Field sourceDistance is used if available. Important for DVF (distance
0008 % variation function) processing with 'HRIRs_NFxxx' as reference.
0009 %
0010 % (C) 2018 by JMA, Johannes M. Arend
0011 %             TH Köln - University of Applied Sciences
0012 %             Institute of Communications Engineering
0013 %             Department of Acoustics and Audio Signal Processing
0014 
0015 %%
0016 clear all;
0017 %Load reference dataset
0018 referenceHRTFdataset = importdata('HRIRs_sfd_N35.mat');
0019 
0020 %Simply do subsampling of the referenceHRTFdataset
0021 %Define number of nodes of sparse grid. Options for lebedev grid:
0022 %6, 14, 26, 38, 50, 74, 86, 110, 146, 170, 194, 230, 266, 302,
0023 %350, 434, 590, 770, 974, 1202, 1454, 1730, 2030, 2354, 2702,
0024 nSparse=38;
0025 %Get sparse sampling grid
0026 [sparseGrid, ~, NmaxSparse] = supdeq_lebedev(nSparse);
0027 
0028 %% Create HRTF dataset as mat file (for internal use)
0029 %Get HRTFs from referenceHRTFdataset
0030 [sparseHRTFdataset.HRTF_L, sparseHRTFdataset.HRTF_R] = supdeq_getArbHRTF(referenceHRTFdataset,sparseGrid);
0031 %Fill struct with additional info
0032 sparseHRTFdataset.f = referenceHRTFdataset.f;
0033 sparseHRTFdataset.Nmax = NmaxSparse;
0034 sparseHRTFdataset.FFToversize = referenceHRTFdataset.FFToversize;
0035 sparseHRTFdataset.samplingGrid = sparseGrid;
0036 if isfield(referenceHRTFdataset,'sourceDistance')
0037     sparseHRTFdataset.sourceDistance = referenceHRTFdataset.sourceDistance;
0038 end
0039 
0040 % Save as mat file
0041 fileName = ['sparseHRTFdataset_L',num2str(nSparse)];
0042 save(fileName,'sparseHRTFdataset')
0043 
0044 %% Create HRIR dataset in SOFA format (for standardized input format)
0045 %Get HRIRs from referenceHRTFdataset
0046 [sparseHRIRdataset.HRIR_L, sparseHRIRdataset.HRIR_R] = supdeq_getArbHRIR(referenceHRTFdataset,sparseGrid);
0047 % Write SOFA object
0048 if isfield(referenceHRTFdataset,'sourceDistance')
0049     %Get source distance if is field
0050     sparseHRIRdataset_SOFA = supdeq_writeSOFAobj(sparseHRIRdataset.HRIR_L',sparseHRIRdataset.HRIR_R',sparseGrid(:,1:2),[],[],referenceHRTFdataset.sourceDistance);
0051 else
0052     % %Use defaults: fs = 48000, earDistance = 0.165m, sourceDistance = 3.0m
0053     sparseHRIRdataset_SOFA = supdeq_writeSOFAobj(sparseHRIRdataset.HRIR_L',sparseHRIRdataset.HRIR_R',sparseGrid(:,1:2));
0054 end
0055 
0056 % Save as SOFA file
0057 fileName = ['sparseHRIRdataset_L',num2str(nSparse),'.sofa'];
0058 SOFAsave(fileName,sparseHRIRdataset_SOFA)

Generated on Wed 30-Nov-2022 14:15:00 by m2html © 2005