Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Institute of Technical Acoustics (ITA)
toolbox
Commits
344e8168
Commit
344e8168
authored
Nov 23, 2017
by
JanGerrit Richter
Browse files
reduce spatial function in itaHRTF
parent
884d1890
Changes
1
Hide whitespace changes
Inline
Sidebyside
Showing
1 changed file
with
39 additions
and
0 deletions
+39
0
applications/BinauralHRTF/HRTF_class/@itaHRTF/reduce_spatial.m
...ations/BinauralHRTF/HRTF_class/@itaHRTF/reduce_spatial.m
+39
0
No files found.
applications/BinauralHRTF/HRTF_class/@itaHRTF/reduce_spatial.m
View file @
344e8168
...
...
@@ 14,5 +14,44 @@ function [ cThis ] = reduce_spatial( this, newCoordinates, varargin )
% Author: JanGerrit Richter <jri@akustik.rwthaachen.de>
% Version: 20171123
oldCoords
=
this
.
getEar
(
'L'
)
.
channelCoordinates
;
% if the desired sampling has more points, its probably unfeasable with
% findnearest search. Abort
if
oldCoords
.
nPoints
<
newCoordinates
.
nPoints
error
(
'There are more points in the wanted sampling than are available. You probably want the interp function'
);
end
% the new coords should have the same radius as the old ones to reduce
% errors
newCoordinates
.
r
=
mean
(
oldCoords
.
r
);
oldCoords
=
oldCoords
.
build_search_database
;
newIndex
=
oldCoords
.
findnearest
(
newCoordinates
);
% calculate all distances from the wanted points to the found points
pointDistances
=
getVectorLength
(
newCoordinates
,
oldCoords
.
n
(
newIndex
));
% calculate the distance between two neighboring points of the new sampling
newSamplingDistance
=
getVectorLength
(
newCoordinates
.
n
(
1
),
newCoordinates
.
n
(
2
));
% the maximum of the found points should always be smaller
if
max
(
pointDistances
)
>
newSamplingDistance
error
(
'The found points are further apart than the sampling allows. Something is wrong'
)
end
cThis
=
this
.
direction
(
newIndex
);
end
function
length
=
getVectorLength
(
pointsA
,
pointsB
)
pointsA
.
r
=
pointsB
.
r
;
vector
=
pointsA

pointsB
;
length
=
sqrt
(
vector
.
x
.^
2
+
vector
.
y
.^
2
+
vector
.
z
.^
2
);
end
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment