Harminv

Extracts frequencies and decay rates from a time series

Harminv is a 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.

Harminv can, in principle, provide much better accuracy than straightforwardly extracting FFT peaks because it assumes a specific form for the signal. (Fourier transforms, in contrast, attempt to represent any data as a sum of sinusoidal components.) It is also often more robust than directly least-squares fitting the data (which can have problematic convergence). Harminv employs the “filter diagonalization method” (FDM) of Mandelshtam and Taylor.

License: GNU GPL.

Tags: harmonic analysis, digital signal processing.

Interfaces: command line, library.

Source language: C.

Supported languages: C, C++.

Requires BLAS, LAPACK.

Staff

Developer: Steven G. Johnson.

Links

Homepage: http://ab-initio.mit.edu/harminv/.

Documentation: http://ab-initio.mit.edu/harminv/harminv-man.html.