Description: | Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion -- given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those sinusoids.
It can, in principle, provide much better accuracy than straightforwardly extracting FFT peaks, essentially because it assumes a specific form for the signal. (Fourier transforms, in contrast, attempt to represent any data as a sum of sinusoidal components, and are thus limited by the uncertainty principle.) It is also often more robust than directly least-squares fitting the data (which can have problematic convergence), since it re-expresses the problem in terms of simply finding the eigenvalues of a small matrix. |