我有时间序列和加速计数据,我想整合到速度和位置时间序列。这是用FFT完成的,但是Matlab和Python中的两种方法给出了不同的结果。在
Matlab代码:nsamples = length(acc(:,1));
domega = 2*pi/(dt*nsamples);
acchat = fft(acc);
% Make frequency array:
Omega = zeros(nsamples,1);
% Create Omega:
if even(nsamples)
nh = nsamples/2;
Omega(1:nh+1) = domega*(0:nh);
Omega(nh+2:nsamples) = domega*(-nh+1:-1);
else
nh = (nsamples-1)/2;
Omega(1:nh+1) = domega*(0:nh);
Omega(nh+2:nsamples) = domega*(-nh:-1);
end
% High-pass filter:
n_low=floor(2*pi*f_low/domega);
acchat(1:n_low)=0;
acchat(nsamples-n_low+1:nsamples)=0;
% Multiply by omega^2:
acchat(2:nsamples) = -acchat(2:nsamples) ./ Omega(2:nsamples).^2;
% Inverse Fourier transform: