递推最小二乘估计Matlab仿真

  • 递推最小二乘估计理论
  • 仿真背景
  • Matlab程序
  • 仿真动图

递推最小二乘估计理论

递推最小二乘是卡尔曼滤波的重要基础,关于最小二乘理论可以参见之前的文章( 最小二乘估计(Least squares estimation)),在此只给出递推最小二乘估计的步骤

  • 计算增益
    Kk=Pk−1HkT(HkPk−1HkT+Rk)−1K_k=P_{k-1}H_k^T(H_kP_{k-1}H_k^T+R_k)^{-1}Kk​=Pk−1​HkT​(Hk​Pk−1​HkT​+Rk​)−1
  • 估计值更新
    x^k=x^k−1+Kk(yk−Hkx^k−1)\hat{x}_k=\hat{x}_{k-1}+K_{k}(y_k-H_{k}\hat{x}_{k-1})x^k​=x^k−1​+Kk​(yk​−Hk​x^k−1​)
  • 协方差更新
    Pk=(I−KkHk)Pk−1(I−KkHk)T+KkRkKkTP_k=(I-K_kH_k)P_{k-1}(I-K_kH_k)^T+K_kR_kK_k^TPk​=(I−Kk​Hk​)Pk−1​(I−Kk​Hk​)T+Kk​Rk​KkT​

仿真背景

仿真场景为量一件物件的长和宽,真实物件的长宽分别为2米和3米,一共测量五十次,假定量测噪声为零均值的高斯噪声,且每次量测噪声之间是不相关的。根据更新的量测绘制出递推最小二乘估计的过程动图。

Matlab程序

clc;clear;close all
X_0 = [2;3];
N = 50;
H = 1;
R = [1 0;0 1];
n = zeros(2,N);
Y = zeros(2,N);
X_e = zeros(2,N);
P_e = zeros(2,2,N);
K = zeros(2,2,N);
error = zeros(2,N);
h1 = subplot(221);
h2 = subplot(222);
h3 = subplot(223);
h4 = subplot(224);
for i = 1:Nn(:,i) = mvnrnd([0;0],R,1);Y(:,i) = H*X_0 + n(:,i);plot(h1,Y(1,1:i),Y(2,1:i),'m.');title(h1,'位置观测和估计更新');axis(h1,[0 4 1 5]);hold(h1,'on')if i == 1X_e(:,1) = Y(:,1);P_e(:,:,1) = R;plot(h1,X_e(1,1),X_e(2,1),'bo');error(:,1) = X_e(:,1) - X_0;elseK(:,:,i) = P_e(:,:,i-1)*H'/(H*P_e(:,:,i-1)*H'+R);plot(h2,i,K(1,1,i),'b.');axis(h2,[0 N 0 0.6]);hold(h2,'on');X_e(:,i) = X_e(:,i-1) + K(:,:,i)*(Y(:,i)-H*X_e(:,i-1));P_e(:,:,i) = (eye(2)-K(:,:,i)*H)*P_e(:,:,i-1)*(eye(2)-K(:,:,i)*H)'+K(:,:,i)*R*K(:,:,i)';plot(h1,X_e(1,i),X_e(2,i),'bo');title(h2,'横向位置校正增益');error(:,i) = X_e(:,i) - X_0;plot(h3,1:i,abs(error(1,1:i)),'b-','LineWidth',1.2);axis(h3,[0 N 0 2]);title(h3,'横向位置估计误差');hold(h3,'on');plot(h4,1:i,abs(error(2,1:i)),'b-','LineWidth',1.2);axis(h4,[0 N 0 2]);title(h4,'纵向位置估计误差');hold(h4,'on');endhold(h1,'off')F = getframe(gcf);im = frame2im(F);[I,map] = rgb2ind(im,256);if i == 1imwrite(I,map,'RLS.gif','GIF', 'Loopcount',inf,'DelayTime',0.3);elseimwrite(I,map,'RLS.gif','GIF','WriteMode','append','DelayTime',0.3);end
end

仿真动图


注意到增益的计算是可以离线计算的,给定了初始协方差矩阵,后续的增益也就确定了。

递推最小二乘估计Matlab仿真相关推荐

  1. 基本最小二乘到递推最小二乘

    基本最小二乘到递推最小二乘 基本最小二乘(LS) 先导知识: 从函数出发 残差 梳理 推导 基本思想: 开始推导 递推最小二乘法 背景 前N个输入输出数据 开始递推 递推优化 结论 Matlab 示例 ...

  2. matlab偏差补偿最小二乘,基于偏差补偿递推最小二乘的Hammerstein-Wiener模型辨识

    自动化学报 2010年 第1期 第36卷第1期2010年1月 自动化学报 ACTAAUTOMATICASINICA Vol.36,No.1January,2010 基于偏差补偿递推最小二乘的Hamme ...

  3. 递推最小二乘辨识平面双机械臂Matlab代码

    本代码是我的毕设里面的一部分,首先是将SCARA机器人简化成为简单的平面双机械臂模型,对其进行动力学建模,由于SCARA机器人的特性,动力学方程中的重力项可以忽略,最后将动力学方程化简成为AX=B的形 ...

  4. 递推最小二乘RLS推导

    批次的最小二乘是给定一批数据比如 {yi∈R,xi∈Rn,i=1,...,N}\{y_i\in\mathbb{R},x_i\in \mathbb{R}^n,i=1,...,N\}{yi​∈R,xi​∈ ...

  5. 序贯最小二乘平差 / 递推最小二乘平差 公式推导

    文章目录 Part.I 预备知识 Chap.I 基础概念 Chap.II 符号含义 Part.II 递推最小二乘平差原理 Chap.I 递推公式 Chap.II 递推公式推导 Chap.III 一图流 ...

  6. 递推最小二乘遗忘因子法(Recursive Forgetting Factor, RFF)

    在普通的递推最小二乘算法中,随着数据的不断到来,显然矩阵XTXX^TXXTX中的元素会变得越来越大,而矩阵PkP_kPk​作为XTXX^TXXTX的逆矩阵,则会逐渐趋于零,这时,模型将无法继续更新或者 ...

  7. matlab经典music,基于经典music的doa估计matlab仿真.doc

    基于经典music的doa估计matlab仿真.doc 信息与通信工程学院阵列信号处理实验报告(基于经典MUSIC的DOA估计MATLAB仿真)学号XXXXXX专业XXXXXX学生姓名XXX任课教师X ...

  8. 随机信号处理AR模型Yule_Walker方程直接解法和Levinson_Durbin递推法的MATLAB与Python实现

    AR模型 AR模型的系统函数H(z)可以表示为: 我们的目的就是要求解系统函数的参数a和增益G. Yule_Walker方程 矩阵形式 根据生成的矩阵,可以解出p个参数 ,再根据自相关函数,可以求出系 ...

  9. 使用ESPRIT,LS-ESPRIT,Music以及Root-Music四种算法进行角度估计matlab仿真

    目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 1.1ESPRIT ESPRIT算法全称为:Estimation of Signal Parameters using Rotationa ...

最新文章

  1. fragment类onresume里面刷新操作处理
  2. Github用户注册流程
  3. java中no1_Java程序设计实验(NO.1).doc
  4. 老男孩Shell企业面试题30道 [答案]
  5. 第 15 章 垃圾回收相关算法
  6. 【ZZ】国外大型网站使用到编程语言 | 菜鸟教程
  7. 关于我对区块链和比特币的看法
  8. Lecture 2 Asymptotic Notation
  9. 【运维面试】面试官: 你们公司的上线流程是怎么样的?
  10. 基于LM2596开关稳压电源控制设计(毕业设计整套资料)
  11. 导数公式、导数运算法则、复合函数求导、幂指函数求导
  12. 安卓开发贴吧!Android高级工程师必看系列,建议收藏
  13. 2020北京国际金融安全论坛(二)
  14. python爬取知乎热搜_python爬取知乎
  15. [零刻] SER5 Pro 迷你主机:从开箱到安装ESXi+虚拟机
  16. 1、RPC框架解析:开篇-什么是RPC?
  17. 【深入理解TcaplusDB技术】详细介绍TDR表数据类型
  18. 2020年安卓各大应用市场份额占比分析,Android自定义View详解
  19. Android漏洞查询
  20. torch.squeeze

热门文章

  1. 海滩在室内?虚拟现实创建的治愈世界
  2. iPhone升级iOS 16后出现提示“面容ID不可用”怎么办?
  3. Springboot多数据源问题之 Could not resolve type alias ‘Blog‘.
  4. 万里长征第一步——python实现有向图转多叉树
  5. 重磅发布!阿里云混合云:全栈建云、智能管云、极致用云 | 凌云时刻
  6. fpt指的是什么_ftp是什么意思
  7. 几种常用的接口协议的积累,欢迎补充
  8. 抖音APP逆向资料记录
  9. 【Aegisub相关】_G 简化代码写法的有效范围
  10. 测试hadoop集群的读写与计算能力