Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
Institute of Technical Acoustics (ITA)
toolbox
Commits
ff429d8e
Commit
ff429d8e
authored
Apr 20, 2018
by
Markus Mueller-Trapet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added T25 for ASTM measurements
parent
5a54b16e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
12 deletions
+11
-12
applications/RoomAcoustics/ita_roomacoustics.m
applications/RoomAcoustics/ita_roomacoustics.m
+1
-1
applications/RoomAcoustics/ita_roomacoustics_parameters.m
applications/RoomAcoustics/ita_roomacoustics_parameters.m
+4
-5
applications/RoomAcoustics/private/ita_roomacoustics_reverberation_time.m
...mAcoustics/private/ita_roomacoustics_reverberation_time.m
+6
-6
No files found.
applications/RoomAcoustics/ita_roomacoustics.m
View file @
ff429d8e
...
...
@@ -245,7 +245,7 @@ for iCh = 1:nChannels
data
.
timeData
=
data
.
timeData
(
1
:
nInputSamples
(
iCh
),:);
% lundeby parameter
[
RT_lundeby
PSNR
Intersection_Time_Lundeby
NoiseLundeby
PSPNR
]
=
ita_roomacoustics_reverberation_time_lundeby
(
data
,
'freqRange'
,
freqRange
,
'bandsPerOctave'
,
bandsPerOctave
,
'plot'
,
sArgs
.
plotLundebyResults
,
'broadbandAnalysis'
,
sArgs
.
broadbandAnalysis
);
[
RT_lundeby
,
PSNR
,
Intersection_Time_Lundeby
,
NoiseLundeby
,
PSPNR
]
=
ita_roomacoustics_reverberation_time_lundeby
(
data
,
'freqRange'
,
freqRange
,
'bandsPerOctave'
,
bandsPerOctave
,
'plot'
,
sArgs
.
plotLundebyResults
,
'broadbandAnalysis'
,
sArgs
.
broadbandAnalysis
);
% copy wanted data in output struct
if
sArgs
.
T_Lundeby
...
...
applications/RoomAcoustics/ita_roomacoustics_parameters.m
View file @
ff429d8e
...
...
@@ -37,7 +37,7 @@ function varargout = ita_roomacoustics_parameters(varargin)
%%
defaultPar
=
struct
(
'Reverberation_Times'
,
struct
(
'EDT'
,
true
,
'T10'
,
false
,
'T15'
,
false
,
'T20'
,
true
,
'T30'
,
true
,
'T40'
,
false
,
'T50'
,
false
,
'T60'
,
false
,
'T_Huszty'
,
false
,
'T_Lundeby'
,
false
),
...
defaultPar
=
struct
(
'Reverberation_Times'
,
struct
(
'EDT'
,
true
,
'T10'
,
false
,
'T15'
,
false
,
'T20'
,
true
,
'T25'
,
false
,
'T30'
,
true
,
'T40'
,
false
,
'T50'
,
false
,
'T60'
,
false
,
'T_Huszty'
,
false
,
'T_Lundeby'
,
false
),
...
'Clarity_and_Definition'
,
struct
(
'C50'
,
false
,
'C80'
,
false
,
'D50'
,
false
,
'D80'
,
false
,
'Center_Time'
,
false
),
...
'Others'
,
struct
(
'PSNR_Lundeby'
,
false
,
'PSPNR_Lundeby'
,
false
,
'Intersection_Time_Lundeby'
,
false
,
'EDC'
,
false
));
...
...
@@ -58,15 +58,14 @@ elseif nargin >= 1 && strcmpi('getAvailableParameters',varargin{1} )
if
any
(
idxOfCat
)
categoryNames
=
categoryNames
(
idxOfCat
);
else
error
(
'second parameter must specify category name. (possible: %sor %s)'
,
sprintf
(
'%s, '
,
categoryNames
{
1
:
end
-
1
}),
categoryNames
{
end
})
%#ok<SPERR>
error
(
'second parameter must specify category name. (possible: %sor %s)'
,
sprintf
(
'%s, '
,
categoryNames
{
1
:
end
-
1
}),
categoryNames
{
end
})
end
end
varargout
=
[]
;
varargout
=
cell
(
1
,
1
)
;
for
iCat
=
1
:
numel
(
categoryNames
)
varargout
=
[
varargout
;
fieldnames
(
defaultPar
.
(
categoryNames
{
iCat
}))
];
%#ok<AGROW>
varargout
(
1
)
=
{
[
varargout
{
1
}
;
fieldnames
(
defaultPar
.
(
categoryNames
{
iCat
}))
]};
end
varargout
=
{
varargout
};
% output is one cell
return
else
...
...
applications/RoomAcoustics/private/ita_roomacoustics_reverberation_time.m
View file @
ff429d8e
...
...
@@ -38,7 +38,7 @@ function varargout = ita_roomacoustics_reverberation_time(varargin)
%% Initialization
narginchk
(
1
,
24
);
sArgs
=
struct
(
'pos1_ir'
,
'itaAudio'
,
'shift'
,
true
,
'calcEdc'
,
true
,
'freqRange'
,
ita_preferences
(
'freqRange'
),
'bandsPerOctave'
,
ita_preferences
(
'bandsperoctave'
),
'intersectionTime'
,
'itaResult'
,
'lateRevEstimation'
,
'itaResult'
,
'noiseRMS'
,
'itaResult'
,
'edcMethod'
,
'cutWithCorrection'
,
'plot'
,
false
,
'EDT'
,
false
,
'T10'
,
false
,
'T15'
,
false
,
'T20'
,
false
,
'T30'
,
false
,
'T40'
,
false
,
'T50'
,
false
,
'T60'
,
false
);
sArgs
=
struct
(
'pos1_ir'
,
'itaAudio'
,
'shift'
,
true
,
'calcEdc'
,
true
,
'freqRange'
,
ita_preferences
(
'freqRange'
),
'bandsPerOctave'
,
ita_preferences
(
'bandsperoctave'
),
'intersectionTime'
,
'itaResult'
,
'lateRevEstimation'
,
'itaResult'
,
'noiseRMS'
,
'itaResult'
,
'edcMethod'
,
'cutWithCorrection'
,
'plot'
,
false
,
'EDT'
,
false
,
'T10'
,
false
,
'T15'
,
false
,
'T20'
,
false
,
'T25'
,
false
,
'T30'
,
false
,
'T40'
,
false
,
'T50'
,
false
,
'T60'
,
false
);
[
ir
,
sArgs
]
=
ita_parse_arguments
(
sArgs
,
varargin
);
%% Calculation of decay curve - SCHROEDER backwards time integration
...
...
@@ -54,13 +54,13 @@ else
end
parNameCell
=
{
'EDT'
'T10'
'T15'
'T20'
'T30'
'T40'
'T50'
'T60'
};
parameters
=
struct
(
'high'
,
{
0
-
5
-
5
-
5
-
5
-
5
-
5
-
5
},
...
'low'
,
{
-
10
-
15
-
20
-
25
-
35
-
45
-
55
-
65
},
...
parNameCell
=
{
'EDT'
'T10'
'T15'
'T20'
'T25'
'T30'
'T40'
'T50'
'T60'
};
parameters
=
struct
(
'high'
,
{
0
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
},
...
'low'
,
{
-
10
-
15
-
20
-
25
-
30
-
35
-
45
-
55
-
65
},
...
'name'
,
parNameCell
);
par2calc
=
[
sArgs
.
EDT
sArgs
.
T10
sArgs
.
T15
sArgs
.
T20
sArgs
.
T30
sArgs
.
T40
sArgs
.
T50
sArgs
.
T60
]
.'
;
par2calc
=
[
sArgs
.
EDT
sArgs
.
T10
sArgs
.
T15
sArgs
.
T20
sArgs
.
T25
sArgs
.
T30
sArgs
.
T40
sArgs
.
T50
sArgs
.
T60
]
.'
;
if
~
any
(
par2calc
)
% if no input parameter => selection of Parameters according to ita_roomacoustics_parameters()
par2calc
=
cell2mat
(
ita_roomacoustics_parameters
(
parNameCell
{:}));
...
...
@@ -160,7 +160,7 @@ varargout(1) = {outputStruct};
if
nargout
>=
2
varargout
{
2
}
=
edc
;
end
if
nargout
>=
3
;
if
nargout
>=
3
varargout
{
3
}
=
timeVector
([
firstSample
lastSample
]);
end
%end function
...
...
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