kalman 滤波

def kalman_filter(last_predict_point, last_P, input_point):
    # 系统观测误差,根据模型进行调节
    R = 0.05
    max_distance = 100
    eps = 0.001
    # 输入为前一个时刻的预测值、前一个时刻的预测误差,当前时刻的观测值
    # 输出为当前时刻的预测值、当前时刻的预测误差
    # 通过当前观测值与前一时刻预测值的距离,计算系统过程噪声
    distance = np.linalg.norm(input_point - last_predict_point)
    alpha = np.clip(distance / max_distance, 0.0, 1.0)
    # print(distance)
    # 系统过程噪声误差
    Q = alpha + eps
    # 系统预测误差
    P = last_P + Q
    # 卡尔曼增益
    K = P / (P + R)
    print(K)
    # 当前时刻的预测值
    cnt_predict_point = last_predict_point + K * (input_point - last_predict_point)
    # 更新当前时刻预测误差
    cnt_P = (1 - K) * P
    return cnt_predict_point, cnt_P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值