Take three consecutive samples of a cosine — no frequency, no amplitude, no phase — and you can still recover the frequency exactly:
cos ω = (y₀ + y₂) / (2 y₁)
No FFT, no long recording, no windowing. You just need y₁ ≠ 0.
Sithan Kanna's post builds the whole method up from that identity, and it's worth reading for the derivation alone. The reason it works is that every cosine obeys the same recurrence: y_t = 2 cos(ω) y_{t−1} − y_{t−2}. Three samples are enough to solve for the coefficient, and the coefficient is the frequency in disguise.
Generalise that and you get something quietly startling: a sum of n complex sinusoids satisfies an order-n linear recurrence, where the coefficients come from expanding a polynomial whose roots are e^{jωᵢ}. Fit the recurrence from samples, find the roots, read the angles. That's Prony's method, published in 1795 — 230 years before anyone needed it for WiFi.
What it beats, and how
An FFT can only separate frequencies about f_s/N apart, where N is the number of samples. That's not a limitation of the algorithm; it's a limitation of assuming nothing. The Fourier transform is nonparametric: it will happily represent any signal, which is why it's robust, and why its resolution is tied to observation length.
Prony assumes the signal is a sum of sinusoids. Given that assumption, n frequencies can be recovered exactly from 2n samples on clean data. The assumption is doing the work that more data would otherwise do.
This is the parametric/nonparametric trade in its purest form, and it's why the method keeps resurfacing. Linear predictive coding in speech — the thing that made early digital telephony possible — is the same idea: model the signal as an autoregressive process, transmit the coefficients. Modern high-resolution frequency estimators, MUSIC and ESPRIT and their descendants, are also in this family. The 1795 paper is not a historical curiosity; it's the ancestor of a technique you use every time you make a phone call.
Where it breaks
Kanna is honest about the failure modes, and they're the interesting part.
Noise makes the recurrence only approximately true. The estimated roots drift off the unit circle, and the frequency estimate degrades — sometimes gracefully, sometimes catastrophically. Closely spaced frequencies make the linear system ill-conditioned, so more samples don't automatically fix the sensitivity; the problem is the geometry, not the sample count. And choosing n, the number of components, is a modelling decision, not an estimation one. Pick too low and you merge components; pick too high and you fit noise.
That last point is the general lesson. The method doesn't tell you how many sinusoids are in your signal. It tells you where they are, given that you already decided how many there should be.
Why this is worth thinking about now
We spend a lot of time these days arguing about model assumptions in machine learning — overfitting, inductive bias, the difference between fitting data and understanding it. Prony's method is a 230-year-old case study in exactly that, with the advantage that the math is simple enough to check by hand.
The exactness result is real, and it's conditional. Two hundred samples of a clean tone will give you a frequency estimate that looks magical compared to an FFT. The same method on a noisy signal with two close frequencies will give you confident nonsense. Nothing about the algorithm changed; only whether the assumption held.
The useful habit is to ask, of any method that seems to beat the resolution limit: what structure am I assuming, and what happens when the data violates it? For Prony, the answers are "a sum of sinusoids" and "the roots leave the unit circle, quietly."
The three-sample trick, kept
I like the opening identity because it's the kind of thing that should be better known. It's exact, it's one line, and it makes the parametric point without any machinery: if you know the form of the answer, you need far less data than if you don't. If you don't, no amount of data will give you the form.
That's not a reason to distrust FFTs. It's a reason to know which game you're playing.
Source: Finding Frequencies Without an FFT: Sinusoids as Autoregressive Models — Sithan Kanna.