RT60 -5dB to -35dB Linear Least Square fitting

C

chickenfingers

Audioholic Intern
Hi

This one is sort of a continuation of my previous thread (calc absorption in a room after measuring RT).

I´m writing a code in Matlab which will return the RT60 of an impulse response. From ISO 3382, a decaying straight line from -5dB to -35dB is obtained using Linear Least Square fitting, then this line is extrapolated to the -60dB point to get the RT60.

As you know an impulse/interrupted noise dB response is not smooth as one sees it on teaching books. Although one can easily spot the decaying curve at the peak of the graph, there are many sampling points which lie many dB´s below the peak. Say at the beggining of the decay where the response is just -5dB below the maximum value one can find sample points at -40dB.

My question is: Is the fitting done from the -5dB sample point to the -35dB sample point or shall I use several representative points (peak values along the decay) within this range. If one uses all sample points the decay straight line will certainly not follow the decay curve.

I´ve attached a jpg file which will illustrate what I mean. The graph begins at the -5dB point from the maximum recorded value and goes to the -35dB point.

I know many will say, why do I bother doing this when there´s already available software for it...

I would really appreciate any help.

thanks

Sergio
 

Attachments

Savant

Savant

Audioholics Resident Acoustics Expert
Sergio,

If you're using ISO 3382 as your basis, check out Annex B.3. I would think that including the evaluation of C would not only indicate whether there is curvature (its intent), but it would also indicate whether the method produces consistent results, regardless of which data points are selected.

Aside from that, I would expect a least-squares fit to work out fine if Annex C of ISO 3382 is being used as the basis. Remember that an energy average is included in this process. Thus, the least-squares fit line should closely match the slope of the decay using the outlined procedure, again, regardless of which exact data points are selected. (In theory, at least! :) )

Now, I think the question of starting point selection is sort of embedded in your question. To answer that, a few suggestions:

• ASTM C423 suggests starting the decay measurement 100-300 ms after the source is turned off. Setting a fixed threshold in this way will generally reduce the possibility for error. I.e., code it so that the first -5 dB point after, say, 100 ms is selected as a starting point.

• Better yet, code it for user input for how much time to exclude at the beginning of the measurement. That way, rooms with lower RTs won't cause any problems.

• Another approach I've used is making sure the slope determination starts at a point where E(late) / E(early) = -5 dB. E = total sound energy; "early" and "late" would be determined at a time t. This will produce much the same result as above, but using an energy ratio to get a good starting point. Should be easy enough to code. (If I can do it in Excel, you should be able to do it in Matlab! :) )
 
C

chickenfingers

Audioholic Intern
Savant
Thanks again. Read about Schroeder´s integral... Thing is at the moment don´t have much time so will use EQWizard/SpectraPlus and Smaart v6. Will leave my little project for later.

Thanks again
 
Savant

Savant

Audioholics Resident Acoustics Expert
Schroeder's integral will also work well...but the start and end points on the curve would still have to be defined, somehow, in order to automate the calc.
 

Latest posts

newsletter

  • RBHsound.com
  • BlueJeansCable.com
  • SVS Sound Subwoofers
  • Experience the Martin Logan Montis
Top