Converting Data to Frequency Domain using MATLAB's Fast Fourier Transform (FFT)

  • Context: MATLAB 
  • Thread starter Thread starter RAYINDASKY
  • Start date Start date
  • Tags Tags
    Fft Matlab
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 6K views
RAYINDASKY
Messages
2
Reaction score
0
I have data in excel file and want to convert that to frequency domain. I wrote the following code but its giving me the wrong results.

If my data is 2,2,2,5,5,6
Shouldn't

Amplitude =2 and frequency =3
Amplitude =5 and frequency =2
Amplitude =6 and frequency =1




%Read in the data
data = xlsread('time.xls');

%Analyze the frequency components.
y=2*abs(fft(data))/length(data);
%Plot frequency versus frequency componant magnitude, circle f_max
figure
plot(x,y)
xlabel('Frequency (Hz)')
ylabel('Amplitude ')
title('Frequency Domain ')
 
Physics news on Phys.org
You are confusing Fourier transforms with histograms. You are asking for the number of occurrences in your data of each value, which has absolutely nothing to do with FFT's. Instead use Matlab's hist command:

data = [2,2,2,5,5,6];
N = length(data);
y = hist(data,N)
bar(1:N,y)