Spectral Leakage, Phase and other questions about FFT I'm currently implementing a voice recognition algorithm using FFT and now some questions came up to me:


Spectral Leakage: I know what it is, why it appears and how to solve it using a Windowing Function, but is there another work around for this issue?
Phase: I know what it is, but where can I use it and how?
Getting the real amplitude (I know it has something to do with spectral leakage, but I will ask this separately): Let's say I have a frequency spectrum with a frequency resolution of 250 (sampling rate = 32000 Hz, frame size = 128) and the input I sent to FFT is a sinusoidal function whose frequency is 567.5 Hz (thus, the number of cycles are non-integer, causing the spectral leakage). My spectrum would be something like this:

So my question is: How can I retrieve the original amplitude of the frequency 567.5 Hz?
Windowing artifacts can be considered as due to a loss of information about a larger data set (e.g.what the window cut out or zeroed).  The "spread" of the Sync is related to the shortness of the data window (what's left after the information loss).  Thus other information about the original data from outside the FFT results can be used to help "solve" this problem (more data, perhaps used with longer FFTs, results in a narrower Sync main "hump").

Phase information within each FFT aperture plus the distance between adjacent or overlapped frames of FFT data is used in to refine phase vocoder frequency estimates or to aid in signal reconstruction.  Phase differences between frames taken from differently placed microphones can be used to help triangulate sound source location.

Peak amplitude can be estimated by interpolation equations, such as parabolic interpolation from 3 points, or better, from (windowed) Sinc kernel interpolation with successive approximation to find the zero derivative point.