how to use FFT in matlab using imported data in time domain excel file

i have some polymers characterized by transmission terahertz time domain spectroscopy (THz-TDS).

1 Comment

Can you please tell where did you extract that data from? I’m doing a similar project

Sign in to comment.

 Accepted Answer

Import the data into MATLAB using xlsread()
Your data will be a Nx2 matrix in MATLAB with the first column the time data and the second column the data you want to Fourier transform.
So for example:
[X,TXT,RAW] = xlsread('yourfile.xls');
xdft = fft(X(:,2));

More Answers (2)

There is a slight variation depending on whether you have an even or odd number of samples in your data.
Even length:
xdft = fft(X(:,2));
% sampling interval -- assuming equal sampling
DT = X(2,1)-X(1,1);
% sampling frequency
Fs = 1/DT;
DF = Fs/size(X,1);
freq = 0:DF:Fs/2;
xdft = xdft(1:length(xdft)/2+1);
plot(freq,abs(xdft))
Odd length
xdft = fft(X(:,2));
% sampling interval -- assuming equal sampling
DT = X(2,1)-X(1,1);
% sampling frequency
Fs = 1/DT;
DF = Fs/size(X,1);
freq = 0:DF:Fs/2;
xdft = xdft(1:round(length(x)/2));
plot(freq,abs(xdft))

4 Comments

xdft = xdft(1:round(length(x)/2));
For that line the x needs to be an X right?
Yes.
It looks to me as if the versions could be merged by using
xdft = xdft(1:ceil(length(X)/2));
This doesn't seem to work for me. But why not just use the length of freq?
xdft = xdft(1:length(freq));
Hi Wayne King, thank you for your guidance. May I ask what DF = Fs/size(X,1); is for? What is the meaning of it? It is the only thing I didn´t understand.
Best Regards

Sign in to comment.

To get the phase, use angle()
phi = angle(xdft);
To export the frequencies and magnitudes back to Excel, place them in a matrix.
Xdftmatrix = [freq' abs(xdft)];
then use xlswrite

1 Comment

phi = angle(xdft);
plot(freq,phi)
You want to plot the phase as a function of frequency

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!