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)

Time Domain Data

Frequency Spectrum


% 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)|');

1 Answer 1


The FFT produces values for both negative and positive frequencies.

Only plot the first half of the FFT output.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.