fusion2.m

来自「采用贝叶斯推论的数据融合」· M 代码 · 共 34 行

M
34
字号
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 + =
减小字号Ctrl + -
显示快捷键?