I have a series of signals sampled at 1200 Hz that are 200-300 samples long. I'd like to analyze them in the frequency domain in 1 Hz bins in MATLAB. I'm primarily interested in the frequencies below about 20 Hz, since this is where virtually all of the signal power is contained.
However, I'm finding conflicting opinions on whether it's appropriate to subtract the mean value from the signal before I perform the FFT function. When I don't subtract the mean, I get a strong 0Hz component, which makes sense given the shape of the original signal. But some sources say you should zero-mean the data so you don't get distortion of the low frequencies, which are the ones I care about. If I do subtract the mean, the FFT is markedly different, and appears to contain massive sinc-like distortions.
Here is the original signal in blue, and the zero-mean version in red, created using detrend(mySignal, 'constant').
As expected, the detrended signal has a mean of zero. But when I do the FFT and look at the spectral distribution, this is what I get:
Note that X-axis is frequency and I've truncated the axes to the first 50 frequency bins (0-49 Hz).
Is it inappropriate to zero-mean a signal like this? And what's the meaning of this distortion in the zero-meaned signal, if anything? Any help is much appreciated!