Home > SUpDEq-v5.0.0 > supdeq_getSparseDataset.m

supdeq_getSparseDataset

PURPOSE ^

% SUpDEq - Spatial Upsampling by Directional Equalization

SYNOPSIS ^

function [sparseHRTFdataset, sparseHRIRdataset] = supdeq_getSparseDataset(sparseGrid,NmaxSparse,referenceOrder,type)

DESCRIPTION ^

% SUpDEq - Spatial Upsampling by Directional Equalization

 function [sparseHRTFdataset, sparseHRIRdataset] = supdeq_getSparseDataset(sparseGrid,NmaxSparse,referenceOrder,type)

 This function returns a sparse HRTF or HRIR dataset by spatial
 subsampling of a high order reference HRTF dataset of the Neumann KU100 
 at order N = 35 or N = 44.

 Output:
 sparseHRTFdataset     - Struct with sparse HRTF dataset. 
 sparseHRIRdataset     - Struct with sparse HRIR dataset. 

 Input:
 sparseGrid            - Sparse sampling grid, e.g. created with one of
                         the supdeq grid functions (supdeq_lebedev, supdeq_gauss, etc.)
 NmaxSparse            - Highest stable grid order of sparse grid. Only
                         required for metadata of sparseHRTFdataset struct
 referenceOrder        - Chose N = 35 or N = 44 (SH order used to
                         transform the reference dataset)
                         Default: N = 35
 type                  - Choose between Neumann KU100 (TH Köln), FABIAN
                         (TU Berlin) or HMSII (TH Köln) HRTFs. Define by
                         string 'ku100','fabian',or 'hmsII'
                         Default: 'ku100'

 Dependencies: SOFiA toolbox, AKtools

 (C) 2020 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 % function [sparseHRTFdataset, sparseHRIRdataset] = supdeq_getSparseDataset(sparseGrid,NmaxSparse,referenceOrder,type)
0004 %
0005 % This function returns a sparse HRTF or HRIR dataset by spatial
0006 % subsampling of a high order reference HRTF dataset of the Neumann KU100
0007 % at order N = 35 or N = 44.
0008 %
0009 % Output:
0010 % sparseHRTFdataset     - Struct with sparse HRTF dataset.
0011 % sparseHRIRdataset     - Struct with sparse HRIR dataset.
0012 %
0013 % Input:
0014 % sparseGrid            - Sparse sampling grid, e.g. created with one of
0015 %                         the supdeq grid functions (supdeq_lebedev, supdeq_gauss, etc.)
0016 % NmaxSparse            - Highest stable grid order of sparse grid. Only
0017 %                         required for metadata of sparseHRTFdataset struct
0018 % referenceOrder        - Chose N = 35 or N = 44 (SH order used to
0019 %                         transform the reference dataset)
0020 %                         Default: N = 35
0021 % type                  - Choose between Neumann KU100 (TH Köln), FABIAN
0022 %                         (TU Berlin) or HMSII (TH Köln) HRTFs. Define by
0023 %                         string 'ku100','fabian',or 'hmsII'
0024 %                         Default: 'ku100'
0025 %
0026 % Dependencies: SOFiA toolbox, AKtools
0027 %
0028 % (C) 2020 by JMA, Johannes M. Arend
0029 %             TH Köln - University of Applied Sciences
0030 %             Institute of Communications Engineering
0031 %             Department of Acoustics and Audio Signal Processing
0032 
0033 function [sparseHRTFdataset, sparseHRIRdataset] = supdeq_getSparseDataset(sparseGrid,NmaxSparse,referenceOrder,type)
0034 
0035 if nargin < 1
0036     error('Please define a sparse grid.');
0037 end
0038 
0039 if nargin < 2
0040     error('Please define NmaxSparse.');
0041 end
0042 
0043 if nargin < 3 || isempty(referenceOrder)
0044     referenceOrder = 35;
0045 end
0046 
0047 if nargin < 4 || isempty(type)
0048     type = 'ku100';
0049 end
0050 
0051 if referenceOrder ~= 35 && referenceOrder ~= 44
0052     error('Reference dataset only available at N = 35 or N = 44.');
0053 end
0054 
0055 %% Get sparse datasets
0056 
0057 %Load reference dataset
0058 if referenceOrder == 35
0059     if strcmp(type,'ku100')
0060         referenceHRTFdataset = importdata('HRIRs_sfd_N35.mat');
0061     end
0062     if strcmp(type,'fabian')
0063         referenceHRTFdataset = importdata('HRIRs_FABIAN_sfd_N35.mat');
0064     end
0065     if strcmp(type,'hmsII')
0066         referenceHRTFdataset = importdata('HRIRs_HMSII_sfd_N35.mat');
0067     end
0068 end
0069 if referenceOrder == 44
0070     if strcmp(type,'ku100')
0071         referenceHRTFdataset = importdata('HRIRs_sfd_N44.mat');
0072     end
0073     if strcmp(type,'fabian')
0074         referenceHRTFdataset = importdata('HRIRs_FABIAN_sfd_N44.mat');
0075     end
0076     if strcmp(type,'hmsII')
0077         referenceHRTFdataset = importdata('HRIRs_HMSII_sfd_N44.mat');
0078     end
0079 end
0080 
0081 %Get HRTFs from referenceHRTFdataset
0082 [sparseHRTFdataset.HRTF_L, sparseHRTFdataset.HRTF_R] = supdeq_getArbHRTF(referenceHRTFdataset,sparseGrid,'DEG',2,'ak');
0083 %Fill struct with additional info
0084 sparseHRTFdataset.f = referenceHRTFdataset.f;
0085 sparseHRTFdataset.Nmax = NmaxSparse;
0086 sparseHRTFdataset.FFToversize = referenceHRTFdataset.FFToversize;
0087 sparseHRTFdataset.samplingGrid = sparseGrid;
0088 if isfield(referenceHRTFdataset,'sourceDistance')
0089     sparseHRTFdataset.sourceDistance = referenceHRTFdataset.sourceDistance;
0090 end
0091 
0092 %Get HRIRs from referenceHRTFdataset
0093 [sparseHRIRdataset.HRIR_L, sparseHRIRdataset.HRIR_R] = supdeq_getArbHRIR(referenceHRTFdataset,sparseGrid,'DEG',2,'ak');
0094 sparseHRIRdataset.Nmax = NmaxSparse;
0095 sparseHRIRdataset.samplingGrid = sparseGrid;
0096 if isfield(referenceHRTFdataset,'sourceDistance')
0097     sparseHRIRdataset.sourceDistance = referenceHRTFdataset.sourceDistance;
0098 end
0099 
0100 end
0101

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