首页 > 编程知识 正文

软件滤波算法(低通滤波算法)

时间:2023-05-06 14:57:49 阅读:1976 作者:147

卡尔曼滤波是一种最优的递归数据处理算法。对于解决大多数问题,他是最好的,最有效率的,甚至是最有用的。它已经被广泛应用了30多年,包括机器人导航、控制、传感器数据融合甚至军用雷达系统和导弹跟踪。近年来,它被应用于计算机图像处理,如人脸识别、图像分割、图像边缘检测等。

最佳线性滤波理论起源于20世纪40年代美国科学家维纳和前苏联科学家K等人的研究工作,后世统称为维纳滤波理论。理论上,维纳滤波最大的缺点是必须使用无限过去的数据,不适合实时处理。为了克服这一缺点,卡尔曼在20世纪60年代将状态空间模型引入滤波理论,并推导出一套递归估计算法,后来被称为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为最佳估计准则的递归估计算法。其基本思想是:利用信号和噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值,更新状态变量的估计,求出当前时刻的估计值。适用于实时处理和计算机操作。

设线性时变系统的离散状态保护和观测方程如下:

X(k)=F(k,k-1) X(k-1) T(k,k-1) U(k-1)

Y(k)=H(k) X(k) N(k)

在…之中

X(k)和Y(k)分别是k时刻的状态向量和观测向量。

F(k,k-1)是一个状态转移矩阵。

U(k)是时间k的动态噪声。

T(k,k-1)是系统控制矩阵。

H(k)是k时刻的观测矩阵。

N(k)是k时刻的观测噪声。

那么卡尔曼滤波的算法流程如下:

估计x (k)=f (k,k-1) x (k-1)

计算预先估计的协方差矩阵

c(k)^=f(k,k-1)c(k)f(k,k-1)' t(k,k-1)Q(k)T(k,k-1)

q(k)=U(k)U(k)

计算卡尔曼增益矩阵

k(k)=c(k)^h(k)'[h(k)c(k)^h(k)' r(k)]^(-1)

r(k)=N(k)N(k)

更新

x(k)~=x(k)^ k(k)[y(k)-h(k)x(k)^]

最新估计协同矩阵

c(k)~=[i-k(k)h(k)]c(k)^[i-k(k)h(k)]' k(k)r(k)k(k)

X(k ^ 1)=X(k)~

C(k 1)=C(k)~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。