I have a signal that looks like this: this

The data is readings from two oscilloscope channels, one color coded blue, the other color coded orange. I would like to filter out the supply noise (all the junk scattered around 0) in both channels to be better able to detect spikes that might occur at and after t=0.

The data files consist of ~25k points. I'm using scipy. The initial peak is always centered roughly on t=0.

My first thought is that the noise is generally symmetric, so I could add the bottom half to the top half to flatten things out. However, the points are discrete, so I think I need to smooth/shift the data somehow to get cancellation. Since the pulses are not symmetric, they should be attenuated only slightly.

I also thought about taking a bunch of small averages the width of a typical peak, but I'm not sure which method will be the most robust.

I don't have much experience, and would like to see if there's an altogether better method I should implement.

Thank you!


A fft of the voltage data: enter image description here

  • $\begingroup$ One suggestion is to look at the frequency spectrum of that noise without the spike to see if there is a dominant portion in frequencies that you can reject with a filter. The spike however will have content at all frequencies, so you would want to minimize what you remove through use of nulling filters. Ultimately after filtering you want to be left with white noise, which will also be constant over all frequencies but hopefully less than what you have now (assuming there is spectrally localized components). Take an FFT and look at it to see....post the results if you can. $\endgroup$ – Dan Boschen Jun 20 at 12:43
  • $\begingroup$ Thank you for the comment -- I've posted the fft data. I'm working through a DSP book at the moment, but it's not clear to me exactly how I use this to filter noise in the original plot. After looking through a few different readings, the noise frequency seems to be all over the place. $\endgroup$ – Hasz Jun 23 at 19:07
  • $\begingroup$ Plot the data with a log verical scale $\endgroup$ – Dan Boschen Jun 23 at 19:08

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.