• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-02-12
  • 语言: Matlab
  • 标签: EKF  simulink  simuli  

资源简介

扩展卡尔曼滤波的基础代码,有详细的注释,结合卡尔曼滤波的基本原理,就能很好的理解卡尔曼滤波过程了。

资源截图

代码片段和文件信息

% EKF 的三个算法
clear;
tic

x = 0.1; % 初始状态
x_estimate = 1; % 状态估计
e_x_estimate = x_estimate; % EKF的状态估计

Q = 10; % input(‘请输入过程噪声的方差Q的值‘); % 过程状态协方差
R = 1; % input(‘请输入测量噪声的方差R的值‘); % 测量噪声协方差
P = 5; % 初始估计方差
e_P = P; % UKF 方差

tf = 50; % 模拟长度
x_array = [x]; % 真实数据组
e_x_estimate_array = [e_x_estimate]; % EKF最优估计值数组

linear = 0.5;

close all;

for k = 1:tf
    % 模拟系统
    x = linear*x + (25*x/(1+x^2)) + 8*cos(1.2*(k-1)) + sqrt(Q)*randn; % 状态值
    y = (x^2/20) + sqrt(R)*randn; % 观测值

%===========================================% 扩展卡尔曼滤波器
    % 进行估计 第一阶段的估计
    e_x_estimate_1 = linear*e_x_estimate + 25*e_x_estimate/(1+e_x_estimate^2) + 8*cos(1.2*(k-1));
    e_y_estimate = (e_x_estimate_1)^2/20; % 这是根据k=1时估计值为1得到的观测值,只是这个由我估计得到的,
                                       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2073  2011-11-09 15:41  EKF.m

----------- ---------  ---------- -----  ----

                 2073                    1


评论

共有 条评论