The workflow for filtering with a fourier transform is:
- Apply Fourier to a time series
- Remove small frequency components
- Apply InverseFourier to get back a time series
The code below assumes your dataset is called data.
We just want the "y" values for the time series, so we'll be using data[[All,2]]. We don't really need the "x" values - the data points should be and are evenly spaced.
Step One:
fdata = Fourier[data[[All, 2]]];
Step Two:
fdataFiltered = Threshold[fdata, {"Hard", 0.0005}]
or
fdataFiltered = (fdata /. x_ /; Abs[x] < 0.0005 -> 0)
Step Three:
smoothedData = InverseFourier[fdataFiltered]
Fourier transforms aren't the only way to filter time series. There are a lot of different options for different purposes. WeinerFilter works fine for many cases:
WienerFilter[data[[All, 2]], 3, 0.1]