[SciPy-User] frequency components of a signal buried in a noisy time domain signal

David Cournapeau cournape@gmail....
Sat Feb 27 06:44:30 CST 2010

On Sat, Feb 27, 2010 at 6:41 PM, Nils Wagner
<nwagner@iam.uni-stuttgart.de> wrote:
> On Fri, 26 Feb 2010 16:32:01 -0500
>  Anne Archibald <peridot.faceted@gmail.com> wrote:
>> Hi,
>> Looking at a periodic signal buried in noise is a
>> problem, with many techniques for attacking it. You
>>really need to be
>> a little more specific about what you want to do. For
>>example, is your
>> input signal really a sinusoid, or does it have harmonic
>>content? Are
>> you trying to detect a weak periodic signal or are you
>>trying to
>> extract the features of a strong periodic signal? Is
>>your signal
>> exactly periodic, does it have some (deterministic or
>>random) wander,
>> or are you looking for the power spectrum of a broadband
>> If your input data are non-uniformly sampled, everything
>>becomes more
>> difficult (and computationally expensive), but there are
>> (e.g. the Lomb-Scargle periodogram).
>> Anne
> Hi Anne,
> Thank you very much for your hints !
> BTW, a BSD licensed code for the Lomb-Scargle periodogram
> is available at
> http://www.mathworks.com/matlabcentral/fileexchange/993-lombscargle-m
> http://www.mathworks.com/matlabcentral/fileexchange/20004-lomb-lomb-scargle-periodogram
> I am newbie to signal processing.
> Is there a good introduction that you can recommend ?

It depends on what you are looking for, and the depth and time you are
willing to spend on it. A "down to earth" book is freely available


If you are interested in manipulating signals with noise, statistical
signal processing is where to look at, but I am not sure there is any
good book which does not start with theory there.

> There are so many books on signal processing. It should
> cover engineering applications.
> What makes a signal weak/strong periodic ?
> The signals come from real-life application (pressure /
> acceleration data).
> Do I need a filter before I apply FFT ?
> What would you do if you know nothing about the origin of
> the signal ?

Well, if you know really nothing, there is nothing you can do :) For
spectral estimation, there are broadly two kind of methods: parametric
and non parametric. Unfortunately, scipy itself does not have much
here - I started the talkbox scikits to implement at least what is
available in matlab and more for spectral estimation, but I am not
sure I will have time to work on it much anymore.

Basic methods, like AR modelling, are quite simple to implement by
yourself, though.


More information about the SciPy-User mailing list