I have data captured by a wireless sensor that is noisy. It randomly jumps in value frequently, and I want to know what this signal will look like without these jumps. I am looking for an elegant signal processing technique to do this, if one exists. Below is the time-series signal:
I initially thought to do a Fourier Transform to see whether there is some frequency I can filter out. The FT looks like this:

Applying a LPF with a cutoff frequency of 2.5 Hz to try getting rid of the 3 Hz signal doesn't yield what I want. It just smooths out the signal and I lose most of the important underlying information that I care about. Using a 10th order Butterworth LPF, with fc = 2 Hz, I get the following signal:

As you can tell, I'm not very well-versed in signal processing, which is why I've come to you.
How can I denoise this signal and get rid of the random spikes?


