Click to See Complete Forum and Search --> : Peak Detection


Chaser8
June 10th, 2009, 01:39 PM
I'm running a very simple peak detection algorithm in Matlab that picks out the sharp spikes in my time series using just the slope of the incline of the spike. However, because the algorithm is so simple, I get a lot of false-positives. The reason that I'm using this simple one is my spikes can "stack" on top of each other, which get smoothed out when I apply a fourier or wavelet transform. When multiple spikes stack on top of each other, they look like one big spike with jagged edges on the incline slope. I've attached a sample file with 2 tracings to give you an idea of what I deal with.

Is there a good method you guys know of that can pick out these peaks using the noise level of the entire tracing?

Should I maybe write something that characterizes a bunch of user-defined peaks and uses that model to pick out new ones? What would be the best method to do that?

Of course, I'd like to reduce false-positives as much as I can while picking out all the true-positives.

vikasvds
June 11th, 2009, 08:24 AM
For spike detection we need to find difference between previous value with current value. store the last and current difference in separate variables if current difference is more then last difference the current spike is peak otherwise last peak was highest.