1
votes

I have a set of data that basically consist of one low frequency component and one high frequency component, where the low frequency is what I would like to recover. This to me seems like a perfect use case for a low pass filter, however, a problem arises since the data is clipped.

As the clipped points basically are constants for short intervals, they will add some low frequency junk which disturbs the signal of interest. I have tried getting around the problem by simply omitting the points subject to clipping, but this method seems slightly naive, is there a better way?

I have included a few figures which shows simulated data to illustrate what I am working with.

Typical signal, starts with values close to zero and then both the low frequency as well as high frequency signal kicks in simultaniously. Typical signal, starts with values close to zero and then both the low frequency as well as high frequency signal kicks in simultaniously.

Running the high frequency signal through a low pass filter yields the following results. Note the difference between having clipping in the data and without. Running the high frequency signal through a low pass filter yields the following results. Note the difference between having clipping in the data and without.

The signal after lowpass filtering. Note the difference between when no clipping is present and when there is. The signal after lowpass filtering. Note the difference between when no clipping is present and when there is.

When filtering the data, I use Matlabs built in function fir1, using the following call:
Signal_lowpass = filter(fir1(100, fc, 'low'), 1, Signal);

1

1 Answers

0
votes

All the plots that you have shown are time-domain representation of your signals. Here it would help if you show the frequency response (magnitude response from fft should suffice) of your clipped signal and also the frequency response of low pass filtered signal. From frequency response of your signal one can design a filter which would eliminate clipping effects as well as the high pass signal. If your low pass signal is a single tone (which it looks like from time domain graphs) a bandpass filter around its frequency would help to extract it.