Divide time series into regions

1 view (last 30 days)
Hello, i have a graph with rapidly changes and i need to divide it into regions like are shown in the picture
I can divide it considered the amplitude of each regions but that's not so appropreate because i have also big dicreases like in region B that reaches the previous region, and that's something that troubles me. I thought maybe i could use standard deviation between local peaks and local minima. What are youur thoughts and do you know any other simple (or not so) methods ? Thanks in advance. Note that this graph sould be divided unsmoothed , and then only each region will be processed.

Accepted Answer

Star Strider
Star Strider on 1 Oct 2015
I don’t have your data so I can only describe an approach. I would use a low-pass filter with a very low frequency passband to isolate the d-c offset for each section. (Ideally, you should get a series of ‘steps’ as the output.) Then use those values to define the different regions. You will probably have to devise a way to deal with the transitions between the steps to define them correctly.
  11 Comments
Manolis Michailidis
Manolis Michailidis on 1 Oct 2015
it's all fine , thanks again

Sign in to comment.

More Answers (1)

Ashim
Ashim on 4 Nov 2017
You can also use alternatively the findchangepts() command from Matlab to find the different regions> here again, there are multiple options based on std dev or mean, or rms, or threshold. Try it out
  2 Comments
Star Strider
Star Strider on 4 Nov 2017
Note that the findchangepts (link) function was introduced in R2016a.
Manolis Michailidis
Manolis Michailidis on 6 Nov 2017
I finished my project but anyway i will test also this function just for curiocity, thank you again

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!