I have a dataset of signals that change over time and I'd like to find the "wobbliest" of them. By "wobbliest", I mean a signal that returns consistently to zero, but does not stay at zero. This is illustrated in the figure below by the Green signal:


I do not consider the Blue signal "wobbly", since it stay at zero the whole time. Neither is the Red signal, since it seems to converge to a value.

Current Attempts

I tried getting the frequency information of each signal by doing a Fast-Fourier-Transform on each signal and setting the DC term of each signal to zero to not select for shifted signals. However, this still seemed to favour signals with large unidirectional changes in magnitude (like the Red signal) over the desired wobbly signals (like the Green signal).


How should I process my signals to find the wobbliest ones? I'm assuming I have to do some sort of operation in the frequency domain, but I don't know exactly what.

  • $\begingroup$ The trick is always to find a mathematical description of what you consider to be wobbly. Try to go for frequency content :) $\endgroup$ – Marcus Müller Oct 4 '16 at 0:00
  • 2
    $\begingroup$ Count the zero-crossings. You can look for the sign change of the signal to do so (the number of flips in the sign bit). $\endgroup$ – msm Oct 4 '16 at 0:09
  • $\begingroup$ You could try to do it in the time domain, by counting the number of zero crossings. $\endgroup$ – MBaz Oct 4 '16 at 0:09

By taking the absolute value of the derivative of each signal, I was able to get the index of the wobbly signals I desired.

Here are the top 100 wobbliest signals in my wobbly dataset: wobble

Here are the top 100 wobbliest signals in my non-wobbly dataset: nowobble


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.