Borrar filtros
Borrar filtros

Impulse response acoustic information calculator

2 visualizaciones (últimos 30 días)
Bill Tate
Bill Tate el 6 de Jul. de 2020
Comentada: Mark Thompson el 6 de Ag. de 2020
Hello can someone help me. I can not figure out how to get this code to run. it is supposed to estimate reverberation time based on room size and absorption. It returns a error of invalidcoeff: abs_coeff so I see a probelm in the first line but I do not understand what to do about it. I tried putting numbers in but the code did not like that either. Can anyone tell me what i am doing wrong? :
function rt = rtEst(abs_coeff,room,formula)
%RTEST Estimate reverberation time based on room size and absorption
%
% RT = IOSR.ACOUSTICS.RTEST(ABS_COEFF,ROOM) estimates the reverberation
% time (RT60) for a shoebox-shaped room, with average absorption
% coefficient ABS_COEFF, and dimenions ROOM=[L W H] (in metres). An RT
% estimate is returned for each element of ABS_COEFF.
%
% RT = IOSR.ACOUSTICS.RTEST(ABS_COEFF,ROOM,FORMULA) allows the formula to
% be specified. The options are 'sabine' (default), or 'eyring'.
% Copyright 2016 University of Surrey.
assert(isnumeric(abs_coeff), 'iosr:rtEst:invalidCoeff', 'abs_coeff should be numeric')
assert(isnumeric(room) & numel(room)==3 & isvector(room), 'iosr:rtEst:invalidRoom', 'room should be a 3-element numeric vector')
if nargin<3
formula = 'sabine';
end
assert(ischar(formula), 'iosr:rtEst:invalidFormula', 'formula should be a character array (string)')
l = room(1);
w = room(2);
h = room(3);
vol = prod(room);
surf_area = (2*l*w) + (2*l*h) + (2*w*h);
switch lower(formula)
case 'sabine'
rt = (0.161*vol)./(surf_area.*abs_coeff);
case 'eyring'
rt = (0.161*vol)./(-surf_area.*log(1-abs_coeff));
otherwise
error('iosr:rtEst:unknownFormula','Unknown formula')
end
end
  1 comentario
Mark Thompson
Mark Thompson el 6 de Ag. de 2020
Can you please post your code for how you call this function? I have just tested it with several different scenario's and the only time I get it to generate the error you are experiencing is when I pass a "non-numeric" value as the absorption coefficient?!

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Simulation, Tuning, and Visualization en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by