Estimation of Two Closely Spaced Frequencies?

What is the best frequency estimation algorithm for two closely spaced frequencies in term of the minimum frequency spacing achieved?

• Under what constraints? I.e. are they the only two tones? How are they sampled? How many samples do you have? Commented Aug 3, 2018 at 19:27
• @MarcusMüller I have the DFT samples, equally spaced , and the two frequencies are distant from other frequencies (higher SNR compared to other tones), not necessarily of the same magnitude. I'm aware of the trivial 1/T resolution property of the DFT sinc-like behaviour. I'm looking for other methods, especially estimated from the DFT of the signal.
– Amro
Commented Aug 4, 2018 at 1:26
• Are the 2 frequencies the only data in the signal? If not, how far are other frequencies?
– Royi
Commented Aug 4, 2018 at 16:11
• @Royi They are not the only frequencies in the signal, but assume the other frequencies are far enough to have minimal effect.
– Amro
Commented Aug 4, 2018 at 17:09
• If they are far enough relative to the observation time does it mean they can be effectively filtered out?
– Royi
Commented Aug 6, 2018 at 9:55

1 Answer

This answer is a consideration of the frequency resolution when using the DFT but does not answer the question specifically in terms of what is the best algorithm. (see comments by Amro).

If the two closely spaced signals are similar in magnitude (and sufficiently stronger than any other signals, i.e. high SNR), then the highest frequency resolution (which is what you are interested in) is achieved with a rectangular window. This means simply take an FFT with no windowing, and the signal bandwidth will be 1 bin wide or similarly equal to 1/T where T is the time length of your composite signal. This relationship holds regardless of what algorithm is used; the frequency resolution is related to the time length of the signal with the best resolution of 1/T. If the two closely spaced signals are not similar in magnitude, you will run into dynamic range issues as the rectangular window has the worst sidelobe levels, which can mask lower level signals. In this case we use windowing; specifically we multiply the time series by a window function prior to taking the FFT, which will significantly reduce sidelobe levels, but will have the drawback of increasing the width of the main lobe (and hence decrease frequency resolution).

See this answer for further related info: Specific frequency resolution

• thank you for you answer. the 1/T is the resolution of DFT maximum likelihood estimator. there are other methods with better frequency resolution. like signal subspace approximation method, MUSIC, among others. see [Karhunen, Juha T., and Jyrki Joutsensalo. "Sinusoidal frequency estimation by signal subspace approximation." IEEE Transactions on signal processing 40.12 (1992): 2961-2972.]
– Amro
Commented Aug 4, 2018 at 1:39
• Yes interesting, thank you- i can picture a phasor diagram of the two tones relative to one of the tones (such as being demodulated to baseband) so that one tone is magnitude 1, angle zero and fixed with time and the other tone therefore is a phasor with it’s relative magnitude on the end of that first phasor and spinning at its relative frequency. From this i can visualize how I can measure that frequency with any two consecutive samples in time by deriving the rate of rotation (if spaced less than 1/f), as long as the SNR is sufficiently high with no other signals present. Commented Aug 4, 2018 at 4:31