Re: [linux-audio-dev] IR FFT smoothing

From: Andrew Gaydenko <a@email-addr-hidden>
Date: Thu Jul 06 2006 - 04:02:23 EEST

======= 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)
Received on Thu Jul 6 04:15:04 2006

This archive was generated by hypermail 2.1.8 : Thu Jul 06 2006 - 04:15:04 EEST