# [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,

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)

```