[linux-audio-dev] IR FFT smoothing

Andrew Gaydenko a at gaydenko.com
Thu Jul 6 01:02:23 UTC 2006


======= On Monday 03 July 2006 11:07, Denis Sbragion wrote: =======
Hello Andrew,

...
See the Mourjopoulos
papers for further details.

Bye,

-- 
	Denis Sbragion
	InfoTecna
	Tel: +39 0362 805396, Fax: +39 0362 805404
	URL: http://www.infotecna.it

======================================================================================

Denis,

I have not found free description of the method defined in this article:

P.Hatziantoniou,J.Mourjopoulos,"Generalized Fractional-Octave Smoothing of Audio and Acoustic
Responses", Journal of the Audio Engineering Society, Vol. 48, No. 4, pp. 259 - 280, April 2000.

At any case, I have tried very simple smoothing of FFT-output, when y(n) is an arithmetic mean
of x(n) and few other input signals before x(n). This "few other" is proportional to n. Result
of "1/6 octave smoothing" is here:

http://gaydenko.com/mix/simpleSmoothing.png

"For eyes", the result is absolutely appropriate for my audio-DIY-ing purposes.
Probably, shown below short python fragment is better rather my ugly English. The fragment
is applied just after FFT-ing (i.e., before converting to db).


Andrew

===============================
import Numeric

def smooth( x,                    # real
            octaveFraction = 1.01 # for "1/3 octave smoothing"
                                  # this par is supposed to be a pow(2.0, 1.0/3.0)
           ):
    y = []
    for n in range(len(x)):
        sum = x[n]
        meanLength = int( (octaveFraction - 1.0) * n / 2.0 )
        if meanLength > 0:
            for k in range(meanLength):
                idx = n - k
                if(idx < 0): idx = 0 # to avoid edge effect
                    sum += x[idx]
        y.append(sum / (meanLength + 1))
    return Numeric.array(y)



More information about the Linux-audio-dev mailing list