The frequency-domain spectrum obtained using MATLAB's FFT function seems inaccurate I am using MATLAB R2018b on a Windows 10 PC. In order to obtain the frequency domain information of a signal, I'm applying MATLAB's FFT function. The signal of interest is obtained from an experiment in which a Gaussian pulse is reflected by a  non-linear target. The reflected pulse is received on an antenna array. Thus, I expect the reflected signal's spectral component to show up on the frequency spectrum. However, the FFT produces what I can only describe as two impulses at the extremes of the frequency axis. I've attached the data being processed, and the results obtained. What exactly am I doing wrong? Are the results reasonable?

The input vector is a 100000x16 matrix (data from 16 different channels at 100000 samples each)





CODE:

% Code 
Ns = 100000; %number of samples
f = linspace(0, 20e9, Ns); % frequency vector
frequency_spectrum = fft(time_domain_data);
plot(f, abs(frequency_spectrum)./max(abs(frequency_spectrum)));
title('Frequency Spectrum');
xlabel('Frequency (in Hz)');
ylabel('Normalized |Y(f)|');
The FFT produces values for both negative and positive frequencies.

Only plot the first half of the  FFT output.