[Scipy-tickets] [SciPy] #1352: Lomb-Scargle periodogram

SciPy Trac scipy-tickets@scipy....
Wed Jan 26 06:36:53 CST 2011

#1352: Lomb-Scargle periodogram
 Reporter:  pschella      |       Owner:  somebody    
     Type:  enhancement   |      Status:  needs_review
 Priority:  normal        |   Milestone:  0.10.0      
Component:  Other         |     Version:  0.8.0       
 Keywords:  Lomb-Scargle  |  

Comment(by pschella):

 Hi, thanks for the vote of confidence.

 @rgommers I have forked your git branch and have made some changes (you
 can pull from git://github.com/pschella/scipy.git).

 I haven't changed the name yet (since this is a packaging decision) but
 would like to suggest the module name "lssa" for "Least-squares spectral
 This has several advantages.
 1. It is a short name without underscores (personal preference)
 2. It is a category name that can comprise several similar algorithms as
 3. It is immediately obvious from this name that this is different than
 FFT and therefore people will not be confused looking for FFT functions in
 this sub-module.
 4. The name corresponds to the Wikipedia entry for this category of
 algorithms :)

 As you suggested, I have made an entry in the signal tutorial for "Least-
 squares spectral analysis" with a subsection "Lomb-Scargle periodograms"
 explaining this function with all the LaTeX equations and consequently
 stripped them from the docstring.
 Not sure if/how this should be put into a separate .rst file for the
 module, please move it if so desired.

 About the performance, I believe the Lomb-Scargle routine normally scales
 with Nt^2^ (not Nt^2^ * Nf) because Nf is usually higher than Nt/2 due to
 super Nyquist sampling (so O(Nf * Nt) ~ O(Nt^2^)).
 This routine has the same scaling, however it uses fewer trigonometric
 evaluations than the straightforward implementation and is therefore
 roughly a factor 2 faster.
 This is the fastest exact implementation I could find.
 The method suggested by Press and Rybick is indeed a lot faster, however
 it is also an approximation.
 It uses interpolation to estimate the periodogram using fft's.
 I would be happy to also implement this algorithm, but since it requires
 the user to pick additional interpolation parameters I would prefer to
 have both options in the module.

 @jpaalasm I have changed the parameter names as suggested consistency in
 parameter naming is usually a good thing.

 I have not been able to reproduce the failed test on my machine (with
 numpy version 1.4.0), is this perhaps changed behavior in numpy itself?

Ticket URL: <http://projects.scipy.org/scipy/ticket/1352#comment:12>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.

More information about the Scipy-tickets mailing list