作者 | 南叔先生
卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
人话就是:线性数学模型算出预测值+传感测量值=更准确的测量值。
假设有一个标量系统,信号与观测模型为:
其中a为常数,n[k]和w[k]是不相关的零均值白噪声,方差分别为\sigma^2_n 和\sigma^2 。系统的起始变量x[0]为随机变量,其均值为零,方差为P_x[0] 。
(1)求估计x[k] 的卡尔曼滤波算法;
(2)当a=0.9,\sigma^2_n=1,\sigma^2=10,P_x[0]=10 时的卡尔曼滤波增益和滤波误差方差。
根据卡尔曼算法,预测方程为:
预测误差方差为:
卡尔曼增益为:
滤波方程:
滤波误差方差
起始:
第一步,根据基本的物理运动方程,写出状态方程
第二步,写出观测方程模型
我开始也不明白这个观测方程是啥意思,实际上这是模拟传感器的测量值,S代表位移,V代表误差。这里代表目标测量量为位移。
第三步,将第一步和第二步的状态方程与观测方程写成矩阵形式
根据对应关系,可以得到系数:
其中A叫做状态转移矩阵,G叫做控制矩阵,H叫做预测矩阵
给定一个初值,就可以迭代得到后面的值了。
下图更简洁的展示了计算流程:
其中F为控制矩阵,Q为预测不确定性,R为传感器噪声,H为映射矩阵,y为误差,
S为方差之和,K为卡尔曼增益,P为更新后的协方差
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。