I have continuous data with very high amplitude periodic noise. Data is sampled at 500 Hz. The period of the noise does change with time but within a short interval (~ a minute) it is constant. Top picture shows an interval where there is very little noise. Second picture is the noisy data. In this example the noise period is 112 samples, that is 0.22 second. Third picture shows the frequency spectra of the noisy data up to 25 Hz (sorry, freq. axis slightly shifted) and the last one is a section of auto-correlation function. Sometimes the noise is more complex (multiple periodic), but the periodicity is still there. I have tried to remove the noise by making a reference signal and some adaptive filtering in a windowing scheme. Though it more or less works, it takes too much time. I have many channels of streaming data. Not all channels are affected and between those that are, the noise doesn't correlate (directional sensors). The filter does not need to do an excellent job. Just so to allow a real signal to be detected.

Appreciate your help

enter image description here

  • $\begingroup$ What's the minimum frequency of your desired signal and the maximum frequency of your periodic noise? If there's space between those two values you could use a multipole (Butterworth or other) filter with a very steep slope to remove the noise. $\endgroup$ – Carl Witthoft Mar 1 '16 at 12:28
  • $\begingroup$ The signals I am looking for are between 2-60 Hz. The noise is mostly dominant below 20 Hz. I have used bandpass filters (20-60 Hz) but am afraid I am removing some signal energy. I guess I have to go with a bandpass in the end. I have good results using NLMS adaptive filter but making a reference signal is painstakingly slow. $\endgroup$ – user1641496 Mar 1 '16 at 13:17

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.