Optimal Peak-Finding in the Spectrum

Based on the preceding sections, an ``obvious'' method for deducing sinusoidal parameters from data is to find the amplitude, phase, and frequency of each peak in a zero-padded FFT of the data. We have considered so far the following issues:

- Make sure the data length (or window length) is long enough so that
all sinusoids in the data are
*resolved*. - Use enough
*zero padding*so that the spectrum is heavily*oversampled*, making the peaks easier to interpolate. - Use
*quadratic interpolation*of the three samples surrounding a dB-magnitude peak in the heavily oversampled spectrum. - Evaluate the fitted parabola at its extremum to obtain the
*interpolated amplitude and frequency estimates*for each sinusoidal component. - Similarly compute a
*phase estimate*at each peak frequency using quadratic or even linear interpolation on the*unwrapped*phase samples about the peak.

The question naturally arises as to how good is the QIFFT method for
spectral peak estimation? Is it optimal in any sense? Are there
better methods? Are there faster methods that are almost as good?
These are questions that generally fall under the topic of
*sinusoidal parameter estimation*.

We will show that the QIFFT method is a fast, ``approximate
*maximum-likelihood* method.'' When properly configured, it is
in fact extremely close to the true maximum-likelihood estimator for a
single sinusoid in white noise. It is also close to the maximum
likelihood estimator for multiple sinusoids that are well separated in
frequency (*i.e.*, side-lobe overlap can be neglected).
Finally, the QIFFT method can be considered *optimal
perceptually* in the sense that any errors induced by the
suboptimality of the QIFFT method are *inaudible* when the
zero-padding factor is a factor of 5 or more. While a zero-padding
factor of 5 is sufficient for all window types, including the
rectangular window, less zero-padding is needed with windows having
flatter main-lobe peaks, as summarized in Table 5.3.

- Minimum Zero-Padding for High-Frequency Peaks
- Minimum Zero-Padding for Low-Frequency Peaks
- Matlab for Computing Minimum Zero-Padding Factors

- Least Squares Sinusoidal Parameter Estimation
- Sinusoidal Amplitude Estimation
- Sinusoidal Amplitude and Phase Estimation
- Sinusoidal Frequency Estimation

- Maximum Likelihood Sinusoid Estimation
- Likelihood Function

- Generality of Maximum Likelihood Least Squares

[How to cite this work] [Order a printed hardcopy] [Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University