I've got the pitch contour of a person singing several different frequencies after each other (octave errors cleaned up). I'd like to segment the stable parts from the transitionary ones (gliding up down). Below is an example of the my data.

After searching the internet and this stackexchange, it seems what I'm really trying to do is step detection, and a common way to tackle this is the CUSUM algorithm (source). I am however at a loss on how to implement this correctly (my statistics math isn't that good).

From what I've read CUSUM is based on the log-likelihood ratio. I've read up on that, but don't seem to be able to wrap my head around how that applies to sample-per-sample dsp coding. My head spins from all the math notation in Bassevile and Nikiforov and I'm coming from a coders' background.

Is anyone willing to point me in the right direction? Are there resources available for this? I'm of course very willing to learn.

enter image description here

  • 1
    $\begingroup$ I don't have time for a full answer now, but check out this post. $\endgroup$ – Peter K. Nov 7 '19 at 15:00
  • $\begingroup$ From first glance that looks like a very thorough yet understandable resource. Thanks Peter, I'll be sure to take a look at this :) $\endgroup$ – Stijn Frishert Nov 7 '19 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.