[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
analysis".
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
desired.
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