www.gusucode.com > 均衡算法误码率对比源码程序 > 均衡算法误码率对比源码程序/Code/SphereBoundsUpdate.m
function[UB_sym,x_probable,d_bar]=SphereBoundsUpdate(UB_sym,x_probable,d_bar,y_bar_orig,R) global m MUL ADD o=m; LB=zeros(1,m); y_bar(o)=y_bar_orig(o); x=UB_sym(o); [UB_sym(o),LB(o)] = SphereBounds(R(o,o),d_bar(o),y_bar(o),o);% New level Bounds if x_probable(o)<LB(o) x_probable(o)=LB(o); end for o = m-1:-1:1 % Finding the new radius for each level d_bar(o) = sqrt(abs((d_bar(o+1) ^2 - (y_bar(o+1)- R(o+1,o+1)*x_probable(o+1))^2))); y_bar(o) = y_bar_orig(o) - R(o,o+1:m)*x_probable(o+1:m); MUL = MUL + 4 + (m-o); ADD = ADD + 2 + (m-o); [UB_sym(o),LB(o)] = SphereBounds(R(o,o),d_bar(o),y_bar(o),o); % New level Bounds if x_probable(o)<LB(o) x_probable(o)=LB(o); end end