[linux-audio-dev] IR FFT smoothing
a at gaydenko.com
Thu Jul 6 01:02:23 UTC 2006
======= On Monday 03 July 2006 11:07, Denis Sbragion wrote: =======
See the Mourjopoulos
papers for further details.
Tel: +39 0362 805396, Fax: +39 0362 805404
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:
"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).
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))
More information about the Linux-audio-dev