% SUpDEq - Spatial Upsampling by Directional Equalization function [gridData, Npoints, Nmax] = supdeq_equiangular(N) This function returns a equiangular sampling grid with azimuth and elevation in degree plus the respective sampling weights. Output: gridData - Q x 3 matrix where the first column holds the azimuth, the second the elevation, and the third the sampling weights. Npoints - Total number of sampling points / nodes [4*(N+1)^2] Nmax - Highest stable grid order Input: N - Spatial order of the equiangular grid. Dependencies: - (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
0001 %% SUpDEq - Spatial Upsampling by Directional Equalization 0002 % 0003 % function [gridData, Npoints, Nmax] = supdeq_equiangular(N) 0004 % 0005 % This function returns a equiangular sampling grid with azimuth and 0006 % elevation in degree plus the respective sampling weights. 0007 % 0008 % Output: 0009 % gridData - Q x 3 matrix where the first column holds the azimuth, the 0010 % second the elevation, and the third the sampling weights. 0011 % Npoints - Total number of sampling points / nodes [4*(N+1)^2] 0012 % Nmax - Highest stable grid order 0013 % 0014 % Input: 0015 % N - Spatial order of the equiangular grid. 0016 % 0017 % Dependencies: - 0018 % 0019 % (C) 2018 by JMA, Johannes M. Arend 0020 % TH Köln - University of Applied Sciences 0021 % Institute of Communications Engineering 0022 % Department of Acoustics and Audio Signal Processing 0023 0024 function [gridData, Npoints, Nmax] = supdeq_equiangular(N) 0025 0026 if nargin == 0 0027 error('Please specify the desired spatial order N!'); 0028 elseif N <= 0 0029 error('Sorry, but N >= 1 is mandatory'); 0030 elseif N > 44 0031 error('Sorry, but we only have equiangular grids up to N = 44'); 0032 else 0033 % Load nodes from materials 0034 % Nodes calculated with ITA toolbox (ita_sph_sampling_equiangular) 0035 load('equiangularNodes_1_44.mat'); 0036 0037 %Get respective grid data already in correct format 0038 gridData = equiangularNodes{N}; 0039 0040 %Write other variables 0041 Npoints = size(gridData,1); 0042 Nmax = N; 0043 0044 end 0045 0046 end 0047