R 用卡尔曼滤波器去噪与时间无关的传感器读数是否可行?如何编码?

R 用卡尔曼滤波器去噪与时间无关的传感器读数是否可行?如何编码?,r,kalman-filter,R,Kalman Filter,在做了一些研究之后,我了解了如何使用与时间相关的功能来实现它。但是,我不太确定是否可以将其应用于与时间无关的场景 假设我们有一个简单的函数y=a*x^2,其中y和x都是以恒定的间隔(比如说1分钟/样本)测量的,a是一个常数。然而,y和x测量值都有白噪声 更具体地说,x和y是两个独立测量的变量。例如,x是管道中的空气流速,y是管道中的压降。由于风机速度的变化导致空气流量变化,因此风管上的压降也在变化。压降y和流量x之间的关系是y=a*x^2,但是这两个测量值都嵌入了白噪声。是否可以使用卡尔曼滤波来

在做了一些研究之后,我了解了如何使用与时间相关的功能来实现它。但是,我不太确定是否可以将其应用于与时间无关的场景

假设我们有一个简单的函数
y=a*x^2
,其中
y
x
都是以恒定的间隔(比如说1分钟/样本)测量的,
a
是一个常数。然而,
y
x
测量值都有白噪声

更具体地说,
x
y
是两个独立测量的变量。例如,
x
是管道中的空气流速,
y
是管道中的压降。由于风机速度的变化导致空气流量变化,因此风管上的压降也在变化。压降
y
和流量
x
之间的关系是
y=a*x^2
,但是这两个测量值都嵌入了白噪声。是否可以使用
卡尔曼滤波
来估计更准确的
y
x
y
均以恒定的时间间隔记录

以下是我的问题:

  • y
    读数降噪实施
    卡尔曼滤波
    是否可行?或者换句话说,对
    y
    有更好的估计

  • 如果这是可行的,如何用R或C编码

  • 附言

    我尝试将
    卡尔曼滤波
    应用于单个变量,效果很好。结果如下。那我就试试本的建议,看看我能不能使它奏效


    我想你可以在这里应用一些类似卡尔曼滤波器的想法

    将您的状态设置为
    a
    ,并带有差异
    p\u a
    。您的更新只是
    F=[1]
    ,而您的测量只是
    H=[1]
    ,观察结果是
    y/x^2
    。换句话说,通过求解原始方程中的
    a
    来测量
    x
    y
    ,并估计
    a
    。像往常一样更新标量KF。近似的
    R
    将非常重要。如果
    x
    y
    都具有零平均高斯噪声,那么
    y/x^2
    当然没有,但您可以得出近似值

    现在您有了一个
    a
    的运行估计值(这是一个随机常数,因此理想情况下
    Q=0
    ,但为了避免数值问题,可能
    Q=[tiny]
    ),您可以使用它来获得更好的
    y


    你有
    y\u-meas
    y\u-est=a*x\u-meas^2
    。使用方差将它们组合为
    (R_y*a*x^2+(P_a+R_x2)*y_meas)/(R_y+P_a+R_x2)
    。随着时间的推移,
    P_a
    变为零(你对
    a
    的估计值变得确定),你可以看到你最终将来自
    x
    y
    测量值的信息合并在一起,这与你对它们的信任程度成正比。早期,当
    P_a
    较高时,你大多相信直接测量
    y_meas
    ,因为你不知道这种关系。

    所谓的“时间无关”是指x和y的真实值是固定的吗?或者它们是时变的?如果它们是时变的,你有x或y的微分方程吗?时间无关意味着y和x不是时间t的函数。卡尔曼滤波应用的一个非常常见的例子是估计运动物体的位置。就像汽车以恒定速度行驶一样。它经过的距离(y)是t的函数,可以用y=v*t.Hmmm表示。。。我错过了一些东西。你是说x和y与时间无关,但在你编辑的问题中,你给出了一个随时间变化的空气流速和压降的例子。所以它们是时变的,因此与时间相关是吗?没错,它们是时变的。这里的时间无关仅意味着两个变量都不是时间的函数。卡尔曼滤波器是线性时不变(LTI)系统的最小平方误差估计器的递推形式。它不适合传统形式的这个问题,因为测量值(x)是我们估计的状态(y)的平方根的函数。相反,如果我们测量x和y并形成不确定系统参数的估计值(即,如果‘a’只是近似已知),那么卡尔曼滤波器将是一个合理的选择。非常感谢您的贡献。等我有空的时候,我会试试你的建议。如果我成功了,我会让你知道的。