1
$\begingroup$

I have the the noisy curve defined by numpy 2D array: mEPSC

As you can see, it has the first flat segment, then rise, peak and decay phases. I need to find the starting point of the rise phase, marked here by the red dot. What algorythm can I use for that? I need it to be as noise-tolerant as possible.

$\endgroup$
4
  • $\begingroup$ My first shot would be Savitzky-Golay: en.wikipedia.org/wiki/Savitzky–Golay_filter $\endgroup$
    – Jazzmaniac
    Apr 15, 2014 at 16:03
  • $\begingroup$ @Jazzmaniac, Ok, that's about smoothing. But will it help me find the point of interest? $\endgroup$
    – Axon
    Apr 15, 2014 at 16:16
  • 1
    $\begingroup$ @Axon: It all comes down to creating some systematic criteria that you use to determine what you mean by the "starting point." For example, why did you select the red dot instead of one a couple samples previous (it appears to start decaying slightly before the red dot)? Then, think about how to describe to a computer to make that decision for you. $\endgroup$
    – Jason R
    Apr 15, 2014 at 16:20
  • $\begingroup$ @Jason R, I placed the dot simply by the eye. :-) I estimate the shape of the curve, then extrapolate it and find the point where it most probably goes nonlinear. But I can't figure out the algorythm for each step and it is probably not very efficient way. $\endgroup$
    – Axon
    Apr 15, 2014 at 16:25

1 Answer 1

3
$\begingroup$

I think Jazzmaniac's suggestion concerning Savitkzy-Golay filters makes a lot of sense. However, I do not suggest to simply smooth your data using these filters. What many people are not aware of is the fact that there are differentiating Savitzky-Golay filters, which smooth and compute the derivative at the same time. Such filters are implemented in Matlab: check this

You can use the smoothed derivative to detect your desired starting point. It will still require some heuristics and tweaking, but I do not see any other more straightforward way to do it.

$\endgroup$
1
  • 1
    $\begingroup$ Precisely what I would have written. Thanks! $\endgroup$
    – Jazzmaniac
    Apr 15, 2014 at 21:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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