0001 function phi_est = PhaAmbiguityBPS(phaBPS, epsilon1, epsilon2)
0002
0003
0004 phi_est = phaBPS;
0005
0006 phi_unwrap(1:3) = phi_est(1:3);
0007 p = floor(1/2 + (phi_unwrap(2) - phi_est(3))/(pi));
0008 phi_unwrap(4) = phi_unwrap(3) + p*pi;
0009 for k1 = 5 : length(phi_est)
0010 p = floor(1/2 + (((1/3*(phi_unwrap(k1-1)+phi_unwrap(k1-2)+phi_unwrap(k1-3))) ...
0011 - phi_est(k1) - epsilon1)/(pi)));
0012 phi_unwrap(k1) = phi_est(k1-1) + p*pi;
0013 end
0014
0015 phi_unwrap(4:length(phi_est) - 1) = phi_unwrap(5:length(phi_est));
0016
0017
0018 if phi_est(end) - phi_unwrap(end-1) > pi
0019 phi_unwrap(length(phi_est)) = phi_est(end) - pi;
0020 elseif phi_est(end) - phi_unwrap(end-1) < -pi
0021 phi_unwrap(length(phi_est)) = phi_est(end) + pi;
0022 else
0023 phi_unwrap(length(phi_est)) = phi_est(end);
0024 end
0025
0026 phi_est = phi_unwrap;
0027
0028 for ii=2:length(phi_est)
0029 if phi_est(ii)-phi_est(ii-1)>pi-epsilon2
0030 phi_est(ii) = phi_est(ii)-1*pi;
0031 end
0032 if phi_est(ii)-phi_est(ii-1)<-pi+epsilon2
0033 phi_est(ii) = phi_est(ii)+1*pi;
0034 end
0035 end