How to find the turning point from noisy data

5 views (last 30 days)
Hi, I wanted to extract the turning point from the noisy data like below. I tried 1st/2nd derivative, findpeak, .etc, but none of those helped. To make sure not to change the position of turning point, I don't want to smooth it. Are there some ideas about it? Many thanks!!
the raw data is attached.

Answers (1)

Jeff Miller
Jeff Miller on 11 Mar 2020
A few ideas:
  1. Form a template for the increasing-then-decreasing shape you are looking for, maybe about 50 units wide along your X axis. Step the template point by point along the X axis and identify the points where it gives you the best match to a segment of your noisy curve. Those "points of best match" will tell you where the peak is (because you know where the peak is in the template.
  2. Look for the start of a series of (say) 5 points that are all higher or lower than the average of the last (say) 3 points. Adjust the 5 and 3 to look at larger or smaller windows.
Your eyeball automatically looks over a much wider range of points than 1st or 2nd derivative (I don't know how findpeak works), so you probably want an algorithm that also looks across a fairly wide range of points.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!