function phi = fitlips(K,Kf,m,n) %w = n*abs(K)/sum(abs(K)); %w = pl(K)/sum(pl(K)); %w = abs(Kf)/(sum(abs(Kf))+eps); %w = w/mean(w); phi = zeros(1,m^n); iip = find(K>0); if isempty(iip) return end if all(K>=0) phi = phi + n; return end M = max(K(iip)); w = K(iip)'/M; w = w*0 + 1; FV = []; for v=0:n phi = zeros(1,m^n); phi(iip) = w*v; phi = ceil(phi); phi = lipropagate(phi,m,n); FV(end+1) = phi*K; end [a,b] = max(FV); v = b-1; phi = zeros(1,m^n); phi(iip) = w*v; phi = ceil(phi); phi = lipropagate(phi,m,n); if 0 FV = []; for v=0:n phi = multispike(m,n,iip,v); FV(end+1) = phi*K; end [a,b] = max(FV); phi = multispike(m,n,iip,b-1); end if 0 for i=1:m^n sig = sign(Kf(i)); phi = phi + sig*w(i)*lipspike(m,n,i)'; end phi = pl(phi); phi = min(phi,n); end if 0 [a,b] = max(Kf); phi = lipspike(m,n,b)'; if sum(Kf)<1e-6 phi = phi*0; end if all(K>0) phi = phi*0 + n; end end return