OK, so here's my botched attempt at doing this. What you'll need to do is plot the spectrum and determine the largest peak - which is the average value as well as the second largest peak, which will give you the dominant frequency. I've noticed that the sampling times between points isn't constant, but let's hope that doesn't interfere with things and this should give us a nice signal.
BTW, I've increased the point size for the FFT to increase the resolution of the spectrum so we can get a better approximation of where the peaks are. As such, let's plot the spectrum and make sure we shift the spectrum so that the centre frequency is in the middle, rather than on the left:
N = 4096; %// FFT point size
F = fft(ssd(:,2), N);
Fs = fftshift(F);
mag = abs(Fs); %// Magnitude spectrum shifted
plot(1:N, abs(mag)); %// Plot the spectrum
This is what we get and I've added in some data cursors to help exemplify my point:

Note that I've manually inspected where the peaks are because sorting them and choosing the largest component isn't the best way to do things. The largest peak is obviously the DC value, but the larger values that follow the largest peak may not necessarily give you the right results as you can see here. Therefore, you could run it through a peak detection algorithm to get the dominant peak, but I'm going to avoid that to give you a result.
As you can see, in the shifted spectrum the points at locations 2018 and 2080 correspond to our dominant peaks while the point at 2049 is the DC offset / average value. As such, create a new signal where we only copy these three locations in the frequency domain, undo the shift, take the inverse, and also cap off any residual imaginary components.
You'll also note that the output length is the FFT point size. You'll want to remove out the extra output and only show up to as long as the original signal contains:
%// Create blank array
out_reconstruct = zeros(N,1);
%// Copy values over from shifted spectrum
out_reconstruct([2018 2049 2080]) = Fs([2018 2049 2080]);
%// Reconstruct in time domain and cap
out_reconstruct = real(ifft(ifftshift(out_reconstruct)));
out_reconstruct = out_reconstruct(1:size(ssd,1));
%// Plot
plot(ssd(:,1), ssd(:,2), ssd(:,1), out_reconstruct);
We get this:

As you can see, this isn't a good reconstruction. There is high variability in your data, and that's why only one dominant sinusoid isn't enough to reconstruct this data. However, the average value more or less is OK, and the oscillations between the original and reconstructed is the same.... so the dominant stuff does work, but the high variability isn't modelled here.