最近公司给了我一个项目,其中有一部分是滤波的内容,因为滤波不好的话,很难做判断。
找来了一个"阻尼最小乘根据滤波法"的计算公式,如下:K----权重因子
P----估计误差方差,即近似值(平滑值)与真实值之差平方和的均方根
R----遗忘因子,可取值0~1,我们取0.88初始值P0 = 10,Y0 = 10;如何把这个公式转换成算法啊?

解决方案 »

  1.   

    请高手帮忙看看关闭文件句柄  fclose  会出错  求解  付上代码 2楼 http://topic.csdn.net/u/20091008/19/85c0ef22-5fe7-4f59-bb49-c1161c35c8f1.html
      

  2.   

    double dbR = 0.88;
    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;
    }
    }