最近公司给了我一个项目,其中有一部分是滤波的内容,因为滤波不好的话,很难做判断。
找来了一个"阻尼最小乘根据滤波法"的计算公式,如下:K----权重因子
P----估计误差方差,即近似值(平滑值)与真实值之差平方和的均方根
R----遗忘因子,可取值0~1,我们取0.88初始值P0 = 10,Y0 = 10;如何把这个公式转换成算法啊?
找来了一个"阻尼最小乘根据滤波法"的计算公式,如下:K----权重因子
P----估计误差方差,即近似值(平滑值)与真实值之差平方和的均方根
R----遗忘因子,可取值0~1,我们取0.88初始值P0 = 10,Y0 = 10;如何把这个公式转换成算法啊?
double dbP0 = 10;
double dbY0 = 10;double GetY(int n)
{
if ( n >= 0 )
{
return GetY(n-1) + GetK(n-1) * (GetX(n)-GetY(n-1));
}
else
{
printf("error parameter of n: %d \n", n);
return 0;
}}double GetX(int n)
{
// Xn+1的公式没有,自己写吧
}double GetP(int n)
{
if ( n >= 2 )
{
return (1 - GetK(n)) * GetP(n-1) / dbR;
}
else
{
printf("error parameter of n: %d \n", n);
return 0;
}}double GetK(int n)
{
if ( n >= 1 )
{
return GetP(n-1)/(GetP(n-1)+dbR);
}
else
{
printf("error parameter of n: %d \n", n);
return 0;
}
}