Show
Ignore:
Timestamp:
08/27/09 15:39:31 (15 years ago)
Author:
smidl
Message:

redesign of Kalman to use BM, new object StateSpace? created

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/tests/test_kalman.cpp

    r565 r583  
    6161        KalmanCh KF; 
    6262        KF.set_parameters ( A, B, C, D, chmat ( R ), chmat ( Q ) ); 
    63         KF.set_est ( mu0, chmat ( P0 ) ); //prediction! 
     63        KF.set_statistics ( mu0, chmat ( P0 ) ); //prediction! 
    6464        const epdf& KFep = KF.posterior(); 
    6565        mat Xt ( dimx, Ndat ); 
    6666        Xt.set_col ( 0, KFep.mean() ); 
    6767 
    68         // 
    69         // FSQMAT 
    70         Kalman<ldmat> KFf; 
    71         KFf.set_parameters ( A, B, C, D, ldmat ( R ), ldmat ( Q ) ); 
    72         KFf.set_est ( mu0, ldmat ( P0 ) ); 
    73         const   epdf& KFfep = KFf.posterior(); 
    74         mat Xtf ( dimx, Ndat ); 
    75         Xtf.set_col ( 0, KFfep.mean() ); 
    76  
    7768        // FULL 
    78         KalmanFull KF2 ( A, B, C, D, R, Q, P0, mu0 ); 
     69        KalmanFull KF2; 
     70        KF2.set_parameters( A, B, C, D, R, Q); 
     71        KF2.set_statistics(  mu0, P0 ); 
    7972        mat Xt2 ( dimx, Ndat ); 
    8073        Xt2.set_col ( 0, mu0 ); 
     
    8679        EKFCh KFE; 
    8780        KFE.set_parameters ( fxu, hxu, Q, R ); 
    88         KFE.set_est ( mu0, chmat ( P0 ) ); 
     81        KFE.set_statistics ( mu0, chmat ( P0 ) ); 
    8982        const epdf& KFEep = KFE.posterior(); 
    9083        mat XtE ( dimx, Ndat ); 
     
    9386        //test performance of each filter 
    9487        Real_Timer tt; 
    95         vec exec_times ( 4 ); // KF, KFf KF2, KFE 
     88        vec exec_times ( 3 ); // KF, KF2, KFE 
    9689 
    9790        tt.tic(); 
     
    10497        tt.tic(); 
    10598        for ( int t = 1; t < Ndat; t++ ) { 
    106                 KFf.bayes ( Dt.get_col ( t ) ); 
    107                 Xtf.set_col ( t, KFfep.mean() ); 
     99                KF2.bayes ( Dt.get_col ( t ) ); 
     100                Xt2.set_col ( t, KF2.posterior().mean() ); 
    108101        } 
    109102        exec_times ( 1 ) = tt.toc(); 
    110  
    111         tt.tic(); 
    112         for ( int t = 1; t < Ndat; t++ ) { 
    113                 KF2.bayes ( Dt.get_col ( t ) ); 
    114                 Xt2.set_col ( t, KF2.mu ); 
    115         } 
    116         exec_times ( 2 ) = tt.toc(); 
    117103 
    118104        tt.tic(); 
     
    121107                XtE.set_col ( t, KFEep.mean() ); 
    122108        } 
    123         exec_times ( 3 ) = tt.toc(); 
     109        exec_times ( 2 ) = tt.toc(); 
    124110 
    125111 
    126112        it_file fou ( "testKF_res.it" ); 
    127113        fou << Name ( "xth" ) << Xt; 
    128         fou << Name ( "xthf" ) << Xtf; 
    129114        fou << Name ( "xth2" ) << Xt2; 
    130115        fou << Name ( "xthE" ) << XtE;