Divide time series into regions

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

Star Strider
Star Strider il 1 Ott 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 Commenti
Manolis Michailidis
Manolis Michailidis il 1 Ott 2015
it's all fine , thanks again
Star Strider
Star Strider il 1 Ott 2015
O.K.
My pleasure.

Accedi per commentare.

Più risposte (1)

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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by