x = [0; 12.5; 22.5; 35; 45; 57.5; 67.5; 80; 90; 102.5; 112.5; 125; 135; 147.5; 157.5; 170; 180];
v = 25.4/11;
y = [v;v;0;0;2*v;2*v;3*v;3*v;4*v;4*v;5*v;5*v;3*v;3*v;2*v;2*v;v];

N =1024;
phi = linspace(0,180,N);
s = interp1(x,y,phi);

figure(1)
plot(phi,s);
hold on

sFFT = 2/N*fft(s);
n = 4;

%figure(2)
%bar(1:n,[real(sFFT(2:n+1))' imag(sFFT(2:n+1))']);

sMean = mean(s);

phi2 = linspace(0,2*pi,1024);
sIFFT = real(sFFT(2:n+1)*exp([1:n]'*1i*phi2))+sMean;

figure(1)
plot(phi,sIFFT,'color','k');

phiRast = [phi2(find(s == v)),phi2(find(s == 0)), phi2(find(s == 2*v)), phi2(find(s == 3*v)), phi2(find(s == 4*v)), phi2(find(s == 5*v))]; %#ok<*FNDSB>
sRast = [s(find(s == v)),s(find(s == 0)),s(find(s == 2*v)),s(find(s == 3*v)), s(find(s == 4*v)), s(find(s == 5*v))];

A = [cos((phiRast)'*[1:n]) sin((phiRast)'*[1:n])]; %#ok<*NBRAK>
b = sRast';
f = lsqr(A,b);

K = f(1:n) + 1i*f(n+1:end);



figure(1)
sOpt = real(K'*exp([1:n]'*1i*phi2)) + sMean;
plot(phi,sOpt,'color','r');
grid on

