4
$\begingroup$

I have a signal which looks something like:

enter image description here

The 12 main round peaks is what I'd like to keep. However, the peak detection algorithm I apply is picking up the in-between noisy peaks. Any strategies I could use to get rid of this noise?

I tried smoothing the signal, but the noisy peaks are still there.

Thanks

$\endgroup$
  • $\begingroup$ can you put your data up ? $\endgroup$ – Spacey Jun 18 '13 at 15:58
  • 1
    $\begingroup$ that's a signal or the spectrum of the signal? $\endgroup$ – endolith Jun 18 '13 at 18:46
  • $\begingroup$ Firstly find the source of noise e.g. bad pcb design, power supply, emi, thermal, low quality components, etc. $\endgroup$ – user20122 Mar 19 '16 at 23:22
3
$\begingroup$

Maybe you could tell us more about the peak picking algorithm you are using!

Some ideas:

  • Use median filtering to remove noise (rather than a linear filter).
  • If you have prior knowledge of the shape of the peaks you want to detect, use a correlator (matched filter) for this shape.
  • Discriminate peaks according their amplitude.
$\endgroup$
  • $\begingroup$ Thank you! I ended up using a window of size n, generating a sin distribution of values and sliding those values across my signal, correlating them against my signal at each window. Works like a charm! $\endgroup$ – by0 Jun 18 '13 at 17:46
2
$\begingroup$

A few more comments in support of pichenettes' answer:

  • the desired peaks seem to be equidistant. If you know this to be the case then you could use this knowledge in your peak detector.

  • otherwise I also believe that median filtering should help a lot.

  • don't try to solve everything by a super-smart pre-processing and a dumb peak-detector, but try to combine both in a smart algorithm.

$\endgroup$
1
$\begingroup$

It looks like the area under each peak above the local minima is significantly greater for desired peaks than than for that under the "noise spikes". You could sum or integrate thus value over the expected pulse width and statistically test it against some threshold.

$\endgroup$

Your Answer

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

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