back to list

Re: [cm] Re: FFT analysis

🔗X. J. Scott <xjscott@...>

8/27/2001 8:13:11 PM

[Robert:]

> When you use the standard FFT algorithm, it produces
> frequency bins, and for short sound clips the bins are so far
> apart as to give very low frequency resolution. For instance,
> an 0.1 second clip at 440 Hz gives a freq resolution of +- 10
> cents - not very good!

> However, one can improve the accuracy considerably, maybe
> achieve a tenfold improvement of accuracy, by using peak
> interpolation. The method is to look not just at the highest
> amplitude of the frequency bins, but also the two bins to
> either side. Then by fitting a curve to it, you can estimate
> where the real peak should be, on assumption that it is a
> response to a single frequency partial.

Hi Robert & Brian!

When you do an FFT, half the data in the frequency
domain you get is phase information. Brian's analysis
I think assumes that one is just tossing out the phase
info, which is what is actually done during some FFT
processing. But if you keep the phase data you can also
analyze it to improve your frequency resolution and
also do neat tricks like Settel & Lippe have done to
oh-so-cleverly separate harmonic and inharmonic
information. The improved frequency info you get by
looking at phase info is part of the selling point of
the phase vocoder, which works this way using the FFT.

Anyway I think a lot of the original post was based on
some assumptions that are not necessary.

Also the proof is in the pudding since FFT analysis and
its variants are productively used by many to get great
results.

Also, there are ways of getting around (eliminating)
the trade off between frequency resolution and time
resolution. My stating that such methods exist should
be sufficient to trigger an 'aha!' in the sufficiently
clever reader. (Right, Robert? It's easy once you
realize that it -can- be gotten around easily. I'm
betting you'll be able to guess this one fairly
easily.)

Thanks for your great tips Robert. You speak from
experience.

Cheers all,

Jeff