卡尔曼滤波降噪代码示例
时间: 2024-01-21 21:14:37 浏览: 82
以下是一个使用卡尔曼滤波进行降噪的Python代码示例:
```python
import numpy as np
from scipy.linalg import inv
def kalman_filter(data, Q, R):
n = len(data)
x = np.zeros((n,))
P = np.zeros((n,))
x[0] = data[0]
P[0] = 1
for i in range(1, n):
x[i] = x[i-1]
P[i] = P[i-1] + Q
K = P[i] / (P[i] + R)
x[i] = x[i] + K * (data[i] - x[i])
P[i] = (1 - K) * P[i]
return x
# 示例数据
data = [1.2, 1.5, 1.3, 1.6, 1.4]
# 噪声方差
Q = 0.01
R = 0.1
# 使用卡尔曼滤波进行降噪
filtered_data = kalman_filter(data, Q, R)
print("原始数据:", data)
print("降噪后的数据:", filtered_data)
```
该代码使用了卡尔曼滤波算法对给定的数据进行降噪处理。其中,`data`是输入的原始数据,`Q`和`R`分别是过程噪声方差和测量噪声方差。函数`kalman_filter`实现了卡尔曼滤波的主要逻辑,返回降噪后的数据。
阅读全文