MATLAB: How to use FFT in matlab using imported data in time domain excel file

fft

I have used a multimeter to measure my phototransistor and I got one excel file with time versus Magnitude. But I got some noise, so I want to use Matlab to do FFT from time domain to frequency domain(frequency versus magnitude) called Photorespone. I attach my file as below. I wanna make this kind of figure, freq versus amplitude.

Best Answer

Use the examples in the documentation on fft (link) to calculate the Fourier transform.
Example Code For Your Signal
[d,s] = xlsread('1.5V.csv');
t = d(:,1)*1E-3; % Convert To ‘seconds’ From ‘milliseconds’
v = d(:,2); % Voltage (?)
L = length(t);
Ts = mean(diff(t)); % Sampling Interval (sec)
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
vc = v - mean(v); % Subtract Mean (‘0 Hz’) Component
FTv = fft(vc)/L; % Fourier Transform
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector (Hz)
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(Fv, abs(FTv(Iv))*2)
grid
xlabel('Frequency (Hz)')
ylabel('Amplitude (V?)')
I did not post the plot, since my code will plot the Fourier transform of your data.
Related Question