?? fangalgorithm.m
字號:
function X = FangAlgorithm(MSP, R, Noise)
% 本程序?qū)崿F(xiàn)無線定位中的FANG算法
% FANGALGORITHM
% 參數(shù)說明:
% MSP:移動(dòng)臺(tái)相對位置;
% R: 小區(qū)半徑;
% Noise: 測距誤差方差。
% X: 輸出移動(dòng)臺(tái)的估計(jì)位置。
% Also see: FangAlgorithm.
% Designed by 李金倫, SWJTU, 2004.12.15
% 輸入?yún)?shù)檢測:
if nargout>1,
error('Too many output arguments.');
end
if nargin~=3,
error('Wrong number of input arguments.');
end
% 初始參數(shù):
MS = R*MSP;
BS = R*NetworkTop(3);
%
R1 = sqrt(MS(1)^2 + MS(2)^2);
R2 = sqrt((BS(1,2) - MS(1))^2 + (BS(2,2) - MS(2))^2);
R3 = sqrt((BS(1,3) - MS(1))^2 + (BS(2,3) - MS(2))^2);
%
R21 = R2 - R1 + MeaNoise(Noise);
R31 = R3 - R1 + MeaNoise(Noise);
%
g = ((R31*BS(1,2))/R21 - BS(1,3))/BS(2,3);
h = (BS(1,3)^2 + BS(2,3)^2 - R31^2 + R31*R21*(1 - (BS(1,2)/R21)^2))/(2*BS(2,3));
d = -((1 - (BS(1,2)/R21)*(BS(1,2)/R21)) + g^2);
e = BS(1,2)*(1 - (BS(1,2)/R21)^2) - 2*g*h;
f = (R21^2/4)*(1-(BS(1,2)/R21)^2)^2 - h^2;
% 輸出:
root1 = (-e - sqrt(e^2 - 4*d*f))/(2*d);
root2 = (-e + sqrt(e^2 - 4*d*f))/(2*d);
if root1 > 0,
EMSX = root1;
else
EMSX = root2;
end
EMSY = g*EMSX + h;
EMS = [EMSX, EMSY];
if nargout == 1,
X = EMS;
else
disp(EMS);
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -