[SciPy-user] Suggestion about algorithm

Robert Kern robert.kern at gmail.com
Thu Oct 23 14:20:47 EDT 2008


On Thu, Oct 23, 2008 at 12:24, Daniele Nicolodi <daniele at grinta.net> wrote:
> Hello, i'm going to ask something not strictly related to scipy. Forgive
> me if this is not appropriate on the mailing list, but i don't know
> where else i can seek for help, any suggestion is appreciated.
>
> I'm measuring the quality factor Q of a mechanical oscillator. I use the
> ring down technique: i excite the oscillator to a big oscillation
> amplitude so that my read out noise is negligible and then i observe the
>  decay of the oscillation amplitude during time.
>
> The evolution of the amplitude A(t) in time can be described, negletting
> any external perturbation, as:
>
> A(t) = A0 * exp(-t/Beta)
>
> where Q = w0 / 2*Beta and w0 is the oscillator natural frequency.
>
> I usually analyze my data extracting the amplitude of each oscillation
> and then computing:
>
> Beta = - dA(t)/dt / A(t)
>
> where dA(t)/dt is the first derivative of the amplitude computed as the
> difference between the amplitude of the current cicle and the previous
> cicle divided by the period of oscillation.
>
> The problem arises because my oscillator has a very long period (about
> 500 seconds) and a very high Q (about 600000). This means that the
> observation time is much shorter than the characteristic time of the
> system and that the value of Beta i want to resolve is very small.
> In this situation my uncertainty on Beta is too big to resolve Q.
>
> Does someone have a suggestion for a better technique to analyze my
> data? There is any smarter thing i can do?

Can you just get the oscillating curve itself rather than extracting
the peaks? It might be easiest just to fit the decaying oscillator
function to the curve. Your uncertainly may still be large, but
probably better than what you currently have.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the SciPy-User mailing list