Both functions caculate the Lomb normalized periodogram (aka Lomb-Scargle, Gauss-Vanicek or Least-Squares spectrum) of a vector x with coordinates in t, which is essentially a generalization of the DFT for unevenly sampled data.
The codes are transcriptions from Fortran of the subroutines found in Section 13.8 (pp. 569-577) of "Numerical recipes in Fortran 77: the art of scientific computing", 2nd ed., vol. 1, Cambridge University Press, NY, USA, 2001 by WH Press, SA Teukolsky, WT Vetterling and BP Flannery,
However, Matlab's characteristics have been taken into account in order to make it fast for Matlab.
FASTLOMB is much faster than LOMB (especially when the length of the input increases) but even LOMB is faster than any other implementation I found in FileExchange. Also they both do not suffer from memory problems (I tested them both for inputs of 100,000 samples).
I'd also like to acknowledge file ID: 20004 (for some reason I can't get two file IDs in the acknowledgements)
Christos Saragiotis (2023). Lomb normalized periodogram (https://www.mathworks.com/matlabcentral/fileexchange/22215-lomb-normalized-periodogram), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: lombscargle.m
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
I corrected a formula where a sqrt was supposed to exist and it didn't. The results don't differ much though.
Sorry about this...
After running the Matlab profiler, I realized that the waitbar I had in the lomb.m function was the main factor of slowness of the lomb.m function. So I removed the waitbar and updated the info in the "Other requirements" section.