📄 fusion2.m
字号:
function X = Fusion2(chan, Taylor)
%%本程序实现第二层数据融合,采用贝叶斯推论
% - 参数chan是一i行,2列的矩阵,每1行是【x,y】定位坐标(其中i为定位次数CalNum)
% - 参数chan是一i行,2列的矩阵(其中i为定位次数CalNum)
%
% - X 为移动台经算法处理后的位置.
% 参数检查:
if nargout>1,
error('Too many output arguments.');
end
if nargin<2 | nargin>4,
error('Wrong number of input arguments.');
end
%算法开始,分别计算chan和泰勒算法的定位估计值的均值和方差
Cm = mean(chan); %1行2列,第一个x,第二个为y的均值
Tm = mean(Taylor);
Cv = var(chan); %1行2列,第一个x,第二个为y的方差
Tv = var(Taylor);
CTv = Cv + Tv; %1行2列,第一个x,第二个为y的的分母,及两个方差和
% 经过贝叶斯推论后的定位估计
Vx = (Cv(1)*Tv(1))/(Cv(1) + Tv(1)); %贝叶斯后的方差,X坐标轴
Vy = (Cv(2)*Tv(2))/(Cv(2) + Tv(2)); %贝叶斯后的方差,Y坐标轴
Xlocat = (Tv(1)*Cm(1))/CTv(1) + (Cv(1)*Tm(1))/CTv(1); %定位结果X轴
Ylocat = (Tv(2)*Cm(2))/CTv(2) + (Cv(2)*Tm(2))/CTv(2); %定位结果Y轴
Locat = [Xlocat,Ylocat];
if nargout == 1,
X = Locat;
elseif nargout == 0,
disp(Locat);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -