用python写卡尔曼滤波的代码
时间: 2023-12-17 18:45:50 浏览: 82
卡尔曼滤波Python代码实例实现
5星 · 资源好评率100%
我可以回答这个问题。以下是一个用Python实现卡尔曼滤波的简单代码:
```python
import numpy as np
# 初始化卡尔曼滤波器参数
x = np.array([0, 0]) # 初始状态
P = np.diag((0.01, 0.01)) # 初始协方差矩阵
A = np.array([[1, 1], [0, 1]]) # 状态转移矩阵
Q = np.eye(2) * 0.0001 # 系统噪声方差
H = np.array([[1, 0]]) # 观测矩阵
R = np.array([[0.1]]) # 观测噪声方差
# 定义卡尔曼滤波函数
def kalman_filter(z):
# 预测
x = np.dot(A, x)
P = np.dot(np.dot(A, P), A.T) + Q
# 更新
y = z - np.dot(H, x)
K = np.dot(np.dot(P, H.T), np.linalg.inv(np.dot(np.dot(H, P), H.T) + R))
x = x + np.dot(K, y)
P = np.dot((np.eye(2) - np.dot(K, H)), P)
return x
# 测试
measurements = [1, 2, 3, 4, 5]
for measurement in measurements:
print(kalman_filter(measurement))
```
这是一个简单的一维卡尔曼滤波器,可以用于处理传感器数据等。
阅读全文