Divide time series into regions

2 次查看(过去 30 天)
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.

采纳的回答

Star Strider
Star Strider 2015-10-1
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 个评论

请先登录,再进行评论。

更多回答(1 个)

Ashim
Ashim 2017-11-4
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 个评论
Star Strider
Star Strider 2017-11-4
Note that the findchangepts (link) function was introduced in R2016a.
Manolis Michailidis
I finished my project but anyway i will test also this function just for curiocity, thank you again

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by