[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