2
$\begingroup$

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

$\endgroup$
2
  • 1
    $\begingroup$ I don't have time for a full answer now, but check out this post. $\endgroup$
    – Peter K.
    Nov 7, 2019 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$ Nov 7, 2019 at 15:14

1 Answer 1

2
$\begingroup$
check(n+1) = abs( x(n+1)- meanx(n) )
meanx(n+1) = ( x(n+1) + n*meanx(n))/(n+1)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.