Rename folders. Put data in correct folder
This commit is contained in:
39
static-spindle/src/getAsynchronousError.m
Normal file
39
static-spindle/src/getAsynchronousError.m
Normal file
@@ -0,0 +1,39 @@
|
||||
% getAsynchronousError
|
||||
% :PROPERTIES:
|
||||
% :header-args:matlab+: :tangle src/getAsynchronousError.m
|
||||
% :header-args:matlab+: :comments org :mkdirp yes
|
||||
% :END:
|
||||
% <<sec:getAsynchronousError>>
|
||||
|
||||
% This Matlab function is accessible [[file:src/getAsynchronousError.m][here]].
|
||||
|
||||
|
||||
function [Wxdec] = getAsynchronousError(data, NbTurn)
|
||||
%%
|
||||
L = length(data);
|
||||
res_per_rev = L/NbTurn;
|
||||
|
||||
P = 0:(res_per_rev*NbTurn-1);
|
||||
Pos = P' * 360/res_per_rev;
|
||||
|
||||
% Temperature correction
|
||||
x1 = myfit2(Pos, data);
|
||||
|
||||
% Convert data to frequency domain and scale accordingly
|
||||
X2 = 2/(res_per_rev*NbTurn)*fft(x1);
|
||||
f2 = (0:L-1)./NbTurn; %upr -> once per revolution
|
||||
|
||||
%%
|
||||
X2dec = zeros(size(X2));
|
||||
% Get only the non integer data
|
||||
X2dec(mod(f2(:), 1) ~= 0) = X2(mod(f2(:), 1) ~= 0);
|
||||
|
||||
Wxdec = real((res_per_rev*NbTurn)/2 * ifft(X2dec));
|
||||
|
||||
%%
|
||||
function Y = myfit2(x,y)
|
||||
A = [x ones(size(x))]\y;
|
||||
a = A(1); b = A(2);
|
||||
Y = y - (a*x + b);
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user