Some frequency estimation stuff in Matlab, mostly from the CRC for Robust and Adaptive Systems
This site presents some Matlab (tm) code for estimation of the frequency of a single, constant tone in noise. While these methods may be extended to the multiharmonic and multi-tone cases, these programs do not include this extension. Currently no explanations for the algorithms are available in HTML form. The only on-line reference is here (PDF). The reference list from this and some updated reference is available here in markdown form.
Professor Barry Quinn has recently completed a book on this topic:
Quinn, B.G, Hannan, E.J. (2000) “The Estimation and Tracking of Frequency”
Barry has made matlab code for the algorithms he describes in the book available here.
Algorithm Type | Matlab Code Links | Complexity | Statistically Efficient? |
---|---|---|---|
Maximum Likelihood (ML) & Approximate ML | Maximum Likelihood | >O(T log T) | Yes |
Periodogram Maximiser | >O(T log T) | Yes | |
Discrete-frequency Periodogram Maximizer | O(T log T) | No | |
Fourier Coefficient Interpolation | Techniques supplied by Eric Jacobsen, EF Data Corp (now Intel). Some extra work done by Eric is available here (or mirrored here) | O(T log T) | No |
Signal Subspace | Minimum Variance | O(T3) | No |
Bartlett | O(T3) | No | |
Noise Subspace | Pisarenko | O(T) | No |
MUSIC | O(T3) | No | |
Phase Weighted Averagers | Lank-Reed-Pollon, Kay, Lovell-Williamson, Clarkson-Kootsookos-Quinn | O(T) | Depends on technique. Most No. |
Filtering Techniques | Fernandes-Goodwin-de Souza | O(T) | Yes |
Quinn-Fernandes | O(T) | Yes | |
Hannan-Huang | ? | ? | |
Nehorai-Porat | ? | ? |