how to use FFT in matlab using imported data in time domain excel file
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Passband Modulation
el 12 de Ag. de 2012
Comentada: Gagan Jain
el 17 de Dic. de 2021
i have some polymers characterized by transmission terahertz time domain spectroscopy (THz-TDS).
1 comentario
Gagan Jain
el 17 de Dic. de 2021
Can you please tell where did you extract that data from? I’m doing a similar project
Respuesta aceptada
Wayne King
el 12 de Ag. de 2012
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));
0 comentarios
Más respuestas (2)
Wayne King
el 12 de Ag. de 2012
Editada: Wayne King
el 12 de Ag. de 2012
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 comentarios
Mathias
el 25 de Feb. de 2017
This doesn't seem to work for me. But why not just use the length of freq?
xdft = xdft(1:length(freq));
Sahaphol Hamanee
el 14 de Feb. de 2018
Editada: Sahaphol Hamanee
el 14 de Feb. de 2018
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
Wayne King
el 13 de Ag. de 2012
Editada: Wayne King
el 13 de Ag. de 2012
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 comentario
Wayne King
el 13 de Ag. de 2012
Editada: Wayne King
el 13 de Ag. de 2012
phi = angle(xdft);
plot(freq,phi)
You want to plot the phase as a function of frequency
Ver también
Categorías
Más información sobre Spectral Measurements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!