Commit fd76cc89 authored by Lukas Aspöck's avatar Lukas Aspöck

added LDT (late decay time) calculation to ita_roomacoustics class

parent e7d0baec
......@@ -38,11 +38,12 @@ function varargout = ita_roomacoustics(varargin)
%
%
% Currently available parameters [ output from ita_roomacoustics_parameters('getAvailableParameters') ]:
% EDT, T10, T15, T20, T30, T40, T50, T60 % reverberation times
% EDT, LDT, T10, T15, T20, T30, T40, T50, T60 % reverberation times
% LDT: Late Decay Time (see [6])
% C50, C80, D50, D80, Center_Time % energy parameters
% T_Huszty % reverberation time with Huszty method [2] (not in public BSD version)
% T_Lundeby, PSNR_Lundeby, Intersection_Time_Lundeby % Lundeby et al. method [1]
% EDC % engergy decay curve
% EDC % energy decay curve
%
%
% Select the parameters to be calculated:
......@@ -64,6 +65,7 @@ function varargout = ita_roomacoustics(varargin)
% [3] ISO EN DIN 3382 - Measurement of the reverberation time of rooms with reference to other acoustical parameters
% [4] Chu - Comparison of reverberation measurements using Schroeder's impulse method and decay-curve averaging method - JASA 1978
% [5] Guski - Measurement Uncertainties of Reverberation Time caused by Noise - AIA-DAGA 2013
% [6] Bradley and Wang - Quantifying the Double Slope Effect in Coupled Volume Room Systems, 2009, https://doi.org/10.1260/135101009788913275
% <ITA-Toolbox>
% This file is part of the application RoomAcoustics for the ITA-Toolbox. All rights reserved.
......@@ -71,6 +73,7 @@ function varargout = ita_roomacoustics(varargin)
% </ITA-Toolbox>
% Author: Martin Guski -- Email: mgu@akustik.rwth-aachen.de
% Lukas Aspck -- Email: las@akustik.rwth-aachen.de
% Created: 08-Jan-2009
......
......@@ -14,7 +14,7 @@ function varargout = ita_roomacoustics_parameters(varargin)
% strCell = ita_roomacoustics_parameters('getAvailableParameters') % returns a cell with strings of all implemented parameters
% strCell = ita_roomacoustics_parameters('getAvailableParameters', 'Reverberation_Times') % only parameters of one category
%
% Currently available parameters: EDT, T10, T15, T20, T30, T40, T50, T60, C50, C80, D50, D80, Center_Time, PSNR_Lundeby, PSPNR_Lundeby, Intersection_Time_Lundeby
% Currently available parameters: EDT, LDT, T10, T15, T20, T30, T40, T50, T60, C50, C80, D50, D80, Center_Time, PSNR_Lundeby, PSPNR_Lundeby, Intersection_Time_Lundeby
% Currently available categories: Reverberation_Times, Clarity_and_Definition, Others
%
%
......@@ -37,7 +37,7 @@ function varargout = ita_roomacoustics_parameters(varargin)
%%
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),...
defaultPar = struct( 'Reverberation_Times', struct('EDT', true, 'LDT', false,'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 ));
......
......@@ -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, 'T25', 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, 'LDT', 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' '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 }, ...
parNameCell = {'EDT' 'LDT' 'T10' 'T15' 'T20' 'T25' 'T30' 'T40' 'T50' 'T60'};
parameters = struct('high', { 0 -25 -5 -5 -5 -5 -5 -5 -5 -5 }, ...
'low', { -10 -35 -15 -20 -25 -30 -35 -45 -55 -65 }, ...
'name', parNameCell );
par2calc = [ sArgs.EDT sArgs.T10 sArgs.T15 sArgs.T20 sArgs.T25 sArgs.T30 sArgs.T40 sArgs.T50 sArgs.T60 ].';
par2calc = [ sArgs.EDT sArgs.LDT 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{:}));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment