UKF中协方差矩阵的计算方法
clear all;clc;close all;
x=[5;4;6];
y=[9;8;7];
%% 方差
var_x=var(x) % maltab默认是无偏的(除以(n-1))
var0_x=var(x,0) % 和上一个相同,也是无偏的
var1_x=var(x,1) % 有偏的(除以(n))
%% 协方差
cov_xy=cov(x,y) % maltab默认是无偏的(除以(n-1))
cov0_xy=cov(x,y,0) % 和上一个相同,也是无偏的
cov1_xy=cov(x,y,1) % 有偏的(除以(n))
%% 将向量合并成矩阵来计算协方差,和上一小节结果一样
XY=[x,y];
cov_XY=cov(XY) % maltab默认是无偏的(除以(n-1))
cov0_XY=cov(XY,0) % 和上一个相同,也是无偏的
cov1_XY=cov(XY,1) % 有偏的(除以(n))
%% 通过矩阵计算协方差,和上两小节结果一样
n=size(XY,1) % XY的行数
mean_XY=mean(XY,1) % 每列的均值(2是每行的均值)
W1_no_bias=(1/(n-1)*eye(n)) % 所有权重相同,无偏(因为除以(n-1))
W1_bias=(1/(n)*eye(n)) % 所有权重相同,有偏(因为除以n)
mean_XY_bdct=mean_XY([1;1;1],:) % 广播broadcast,等效于 mean_XY_bdct=[1;1;1]*mean_XY
(XY-mean_XY_bdct)'*W1_no_bias*(XY-mean_XY_bdct) % 无偏(因为除以(n-1))
(XY-mean_XY_bdct)'*W1_bias*(XY-mean_XY_bdct) % 有偏(因为除以n)
%% 权重不同
W2=diag([0.2 0.3 0.5]) % 权重不同
(XY-mean_XY_bdct)'*W2*(XY-mean_XY_bdct)
%% 两个矩阵也不同了
x2=[2;4;6]
y2=[8;9;10]
X2Y2=[x2,y2]
mean_X2Y2=mean(X2Y2,1)
mean_X2Y2_bdct=mean_X2Y2([1;1;1],:)
(XY-mean_XY_bdct)'*W2*(X2Y2-mean_X2Y2_bdct) % 不对称
结果: