I used Matlab to calculate a sinusoidal function:
Cy2 = 0.0226809015035037 - 0.235834694520537*sin(5.06307730580011 - 2*pi*2*t);
If I choose a set of Matlab generated data:
dt=5.305164999999997e-04;
t=[dt1:dt1:245];
Then conduct FFT on y(t), I have a nice and clean result (black line):
However, if I use my experimental data's time steps 't_exp' (download here)
t=t_exp %t_exp is the time steps corresponding my experimental data
I get much more noisy data (black line):
I just wonder how come the extra noise while the function is exactly the same, and only a different time step series are chosen.
Conversely, I got noisy experimental data with such time step series (t_exp). Is it possible to make it cleaner by modifying the time step series? I almost mis-interpreted my exp data due to the noise.
Appreciate any help.
==========================
Appendix: my code to do FFT:
function [f, P1]=fftzp2(t,y)
zpf=1;
%zpf=2;
L=length(t);
dt=t(20)-t(19);
Fs = 1/dt;
Y = fft(y,zpf*L);
%Y = fft(y,L);
P2 = abs(Y/L);
P1 = P2(1:ceil(L/2)+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:ceil(L/2))/(zpf*L);
%% energy conservation check
Ent=sum(y.^2)*dt;
df = Fs/L;
Enf=sum(abs(Y*dt).^2)*df;
if Ent-Enf>1e-9; disp('energy not conserved'); pause;end
end