详解卡尔曼滤波算法

本文通过实例详细解释了卡尔曼滤波算法的工作原理及其应用。利用MATLAB代码展示了如何处理测量数据,通过调整Q值来平衡最终结果与测量值的关系。卡尔曼滤波在实际中用于平滑和预测不稳定的测量数据,降低噪声影响。
摘要由CSDN通过智能技术生成

详解卡尔曼滤波算法

理解:https://www.zhihu.com/question/23971601/answer/375355599

实例:http://bilgin.esme.org/BitsAndBytes/KalmanFilterForDummies

 

根据实例中的数据,做如下计算:

time_ms = [1 2 3 4 5 6 7 8 9 10];
% 测量值
measure_value = [0.39 0.50 0.48 0.29 0.25 0.32 0.34 0.48 0.41 0.45];
calc_value = [];

% 初始值
X_k_1 = 0;
P_k_1 = 1;

% 外界原因对温度的影响
Q = 0.1;
% 传感器的测量方差
R = 0.1;

% X_k_1 k-1 时刻状态
% X_k   k 时刻状态
% X_k_  预测k 时刻状态
% P_k_  预测k 时刻不确定度(方差)
% P_k   k 时刻的不确定度(方差)
for i = time_ms
    X_k_ = X_k_1;
    P_k_ = P_k_1 + Q;
    K_k = P_k_/(P_k_ + R);
    X_k = X_k_ + K_k * (measure_value(i) - X_k_);
    P_k = (1 - K_k) * P_k_;
    
    P_k_1 = P_k;
    X_k_1 = X_k;
    
    calc_value = [calc_value X_k];
end

figure;

plot(time_ms, measure_value, 'r')
hold on;
plot(time_ms, calc_value, 'b')
axis([1 10 0 0.6]);

最终结果的波动总比测量值小,并跟随测量值变化。

通过调节Q的值,可以调节最终结果:

Q = 0,最终结果变动量更小;

Q = 1,最终结果基本等于测量值,由于原值基本为0.4,Q = 1时,说明外界因素对温度影响大,最终结果基本

是测量值,还是比较科学的。

 

逐行理解上述两个链接的内容,基本能搞懂卡尔曼滤波是个什么样的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驯服每一头怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值