Julian Urrego Acoustics Project 3 12/13/2013
1
UNIVERSITY OF MIAMI
DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING
EEN 502 - Engineering Acoustics
Project No. 3
Reverberation time of ordinary rooms (ISO 3382-2)
The reverberant properties of a room have strong influence on the sound pressure level from
noise sources, the intelligibility of speech, the perception of privacy and the quality of musical
performance, and it can be used to determine the correction for room absorption and insulation.
Reverberation time is defined as the time it takes the space-averaged sound energy density to
decrease by 60 dB after source activity has stopped. The goal is to measure the reverberation
time of an unoccupied Memorial Building classroom at the University of Miami. The method
will follow the ISO 3382-2 (2008) standard. The volume of the selected room must be at least
300 m3
(large room.) Work in pairs, but analysis and reporting must be an individual effort.
Equipment
1. Sound source: Burst noise from an exploding plastic balloon
2. Receiver: Omnidirectional or supercardioid microphone
3. Recording equipment: High quality digital recorder
Procedure
1. Room excitation: Select 12 source-microphone combinations, with located source at least 1
m from any surface and microphone at least 3 m from source on a tripod. Avoid symmetric
positions. In otherwise quiet conditions, explode balloon and record response
monophonically with at least 16 bit precision and sampling rate of 44.1 kHz.
2. Averaging procedure: Superimpose amplitude normalized and time synchronized traces of
the squared sound pressure recording and compute the average sound energy decay
waveform.
3. Overall reverberation time: Use linear regression to model the decay curve and determine
T20 and T30 of the averaged sound decay waveform. Calculate T60.
4. Octave bands reverberation time: Simulate the standard octave bands with center frequencies
from 125 Hz to 8 kHz using Fourier analysis (FFT). Compute the average sound energy
decay waveform for each octave band. Use linear regression to model the decay curve and
determine T20 and T30 and calculate T60 for each octave band.
Julian Urrego Acoustics Project 3 12/13/2013
2
Room Panoramas:
East Ballroom 310
\
Dimensions:
L = 19.71 m
W = 12.95 m
H = 5.17 m
Volume = 1319.6 m3
Temperature = 72° F
Humidity = 20%
Room had around 100 chairs lined up in rows neatly in the center. There were thick curtains on
the right hand side of the room. A podium was located in the back left corner of the room and
two tables were next to it. Two more tables were in the front of the room. We moved one to the
middle right to be able to move our microphone further.
Julian Urrego Acoustics Project 3 12/13/2013
3
Date of Measurements: 12/9/2013
We used air inflated water balloons as our source and a cardioid microphone as our receiver.
Ideally, we would want an omni-directional source and an omni-directional microphone. Each
trial was done with the popping end of the balloon facing towards the head of the microphone.
Below are the various source and microphone positions we tried. A digital recording device was
used for capturing the data and Audacity and Matlab were the programs used for analysis. ISO
3382 standards were followed.
Julian Urrego Acoustics Project 3 12/13/2013
4
12 Recorded Responses
Average Decay
Julian Urrego Acoustics Project 3 12/13/2013
5
Average Decay of Octave Bands
125 Hz
250 Hz
Julian Urrego Acoustics Project 3 12/13/2013
6
500 Hz
1000 Hz
Julian Urrego Acoustics Project 3 12/13/2013
7
2000 Hz
4000 Hz
Julian Urrego Acoustics Project 3 12/13/2013
8
8000 Hz
Julian Urrego Acoustics Project 3 12/13/2013
9
Reverberation Times
RT20 (sec) RT30 (sec) RT60 (sec)
Average 0.521 0.781 1.563
125 Hz 0.694 1.041 2.083
250 Hz 0.528 0.791 1.583
500 Hz 0.441 0.661 1.322
1000 Hz 0.467 0.700 1.400
2000 Hz 0.473 0.710 1.420
4000 Hz 0.453 0.680 1.360
8000 Hz 0.407 0.610 1.220
Julian Urrego Acoustics Project 3 12/13/2013
10
Conclusion
The reverberation times all came out as expected. The low-frequencies should die out
slower than the high-frequencies. The analysis was performed after normalizing and time-
synchronizing all the pressure waveforms. The average decay curve was then calculated using
the envelopes of the signals to ensure less noise in the resulting average. This would later help in
figuring out linear regression curves. The same process was applied again except only after
octave bandpass filters were applied to each track. The averages were gathered again and then
analyzed.
There were a few issues when first recording the impulse responses. We noticed that the
tracks were clipping so we increased the headroom by 20 dB using a switch on the mic and again
on the recorder. Sometimes the popper of the balloon would not hit the balloon correctly, so we
would have to try again. The method of using a balloon is not the best. The sound comes first
from the point where the balloon was popped so it isn’t truly omni-directional. The cardioid
microphone that was provided also was not ideal because it attenuates sound coming in from
behind the microphone.
The room itself was quite large and fun to test in. The ceiling was the only non-flat
surface. The resulting RT60 time of 1.5 sec was pretty good but overall too much for a
ballroom. The recommended RT60 time is 1-1.2 sec according to acoustics.com. I’m sure it was
a lot worse before the curtains were put up. To decrease the RT60 time, I would try putting
curtains up on the other side of the room as well.
Julian Urrego Acoustics Project 3 12/13/2013
11
Matlab Code:
%Julian Urrego %Acoustics %Project 3
clear all; clc; close all; fs = 44100;
x = zeros(12,3*fs); y = zeros(12,2*fs); decays = zeros(12,2*fs); for n=1:12 x(n,:) = audioread(['track-',num2str(n),'.wav']); %read in wav files [c,i] = max(x(n,:)); y(n,:) = x(n,i:i+2*fs-1); %time synchronize h(n,:)= hilbert(y(n,:)); env(n,:) = abs(h(n,:)); decays(n,:) = 10*log10(env(n,:).^2); % decays(n,:) = 10*log10(y(n,:).^2); end
% figure; % t = 0:1/fs:2; % t = t(1:88200); % pos = [1 2 3 4 5 6 8 9 10 11 12 13]; % for n = 1:12 % % subplot(6,2,n); % plot(t,y(n,:)); % title(['Mic Position ', num2str(pos(n))]); % if n == 1 % xlabel('time, sec'); ylabel('Amplitude'); % end % grid on; % end
avg = sum(decays)/12;
X = 0:1/fs:2; X = X(1:88200); % [a,b]=size(avg); trial = 1; j = 3; % for j=1:2
plot(X,avg(1:88200)), axis tight, hold on title(['Decay Curve and fitted curve of polynomial of order ',
num2str(j)]) p=polyfit(X,avg(1:88200),j); y2=polyval(p,X); pause plot(X,y2, 'k'), axis tight, hold off
Julian Urrego Acoustics Project 3 12/13/2013
12
xlabel('time, sec'), ylabel('dB') if i==trial break end
pause % end slope = (y2(44100)-y2(1))/(X(44100)-X(1));
cfs = [125 250 500 1000 2000 4000 8000]; N = 3; % limit centre frequencies so filter coefficients are stable % cfs = cfs(cfs>fs/200 & cfs<fs/5); % cfs = cfs(:);
% calculate filter coefficients a = zeros(length(cfs),(2*N)+1); b = zeros(length(cfs),(2*N)+1); for f = 1:length(cfs) [b(f,:),a(f,:)] = octdsgn(cfs(f),fs,N); end
for j = 1:12 for f = 1:length(cfs) fil(j,:,f) = filter(b(f,:),a(f,:),y(j,:)); % octave-band filter % temp(j,:,f) = cumtrapz(fil(end:-1:1).^2); h2(j,:,f)= hilbert(fil(j,:,f)); env2(j,:,f) = abs(h2(j,:,f)); octDecays(j,:,f) = 10*log10(env2(j,:,f).^2); % octAvg(j,:) = sum(octDecays(j,:,f)); end end
for f = 1:length(cfs)
octAvg(f,:) = sum(octDecays(:,:,f))/12; end
X = 0:1/fs:2; X = X(1:44100); % [a,b]=size(avg); trial = 1; % for j=1:2 j = 3; for i = 1:length(cfs)
plot(X,octAvg(i,1:44100)), axis tight, hold on title(['Decay Curve of ',num2str(cfs(i)),' Hz Octave band and fitted
curve of polynomial of order ', num2str(j)]) p=polyfit(X,octAvg(i,1:44100),j); y2=polyval(p,X); % pause plot(X,y2, 'k'), axis tight,hold off xlabel('time, sec'), ylabel('dB')
Julian Urrego Acoustics Project 3 12/13/2013
13
% if i==trial % break % end slope = (y2(44100)-y2(1))/(X(44100)-X(1)) pause end
% end
function [B,A] = octdsgn(Fc,Fs,N); % OCTDSGN Design of an octave filter. % [B,A] = OCTDSGN(Fc,Fs,N) designs a digital octave filter with % center frequency Fc for sampling frequency Fs. % The filter are designed according to the Order-N specification % of the ANSI S1.1-1986 standard. Default value for N is 3. % Warning: for meaningful design results, center values used % should preferably be in range Fs/200 < Fc < Fs/5. % Usage of the filter: Y = FILTER(B,A,X). % % Requires the Signal Processing Toolbox. % % See also OCTSPEC, OCT3DSGN, OCT3SPEC.
% Author: Christophe Couvreur, Faculte Polytechnique de Mons (Belgium) % [email protected] % Last modification: Aug. 22, 1997, 9:00pm.
% References: % [1] ANSI S1.1-1986 (ASA 65-1986): Specifications for % Octave-Band and Fractional-Octave-Band Analog and % Digital Filters, 1993.
if (nargin > 3) | (nargin < 2) error('Invalide number of arguments.'); end if (nargin == 2) N = 3; end if (Fc > 0.70*(Fs/2)) error('Design not possible. Check frequencies.'); end
% Design Butterworth 2Nth-order octave filter % Note: BUTTER is based on a bilinear transformation, as suggested in [1]. %W1 = Fc/(Fs/2)*sqrt(1/2); %W2 = Fc/(Fs/2)*sqrt(2); pi = 3.14159265358979; beta = pi/2/N/sin(pi/2/N); alpha = (1+sqrt(1+8*beta^2))/4/beta; W1 = Fc/(Fs/2)*sqrt(1/2)/alpha; W2 = Fc/(Fs/2)*sqrt(2)*alpha; [B,A] = butter(N,[W1,W2]);
Julian Urrego Acoustics Project 3 12/13/2013
14
Other Pictures:
Julian Urrego Acoustics Project 3 12/13/2013
15
Julian Urrego Acoustics Project 3 12/13/2013
16
Julian Urrego Acoustics Project 3 12/13/2013
17
Julian Urrego Acoustics Project 3 12/13/2013
18
Julian Urrego Acoustics Project 3 12/13/2013
19
Julian Urrego Acoustics Project 3 12/13/2013
20
Julian Urrego Acoustics Project 3 12/13/2013
21
Julian Urrego Acoustics Project 3 12/13/2013
22
Julian Urrego Acoustics Project 3 12/13/2013
23
Julian Urrego Acoustics Project 3 12/13/2013
24