Changeset 6162 in ntrip


Ignore:
Timestamp:
Sep 14, 2014, 1:05:46 PM (10 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/src/PPP_free
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP_free/pppFilter.cpp

    r6115 r6162  
    699699}
    700700
    701 //
    702 //////////////////////////////////////////////////////////////////////////////
    703 void t_pppFilter::kalman(const Matrix& AA, const ColumnVector& ll,
    704                       const DiagonalMatrix& PP,
    705                       SymmetricMatrix& QQ, ColumnVector& dx) {
    706 
    707   Tracer tracer("t_pppFilter::kalman");
    708 
    709   int nPar = AA.Ncols();
    710   int nObs = AA.Nrows();
    711   UpperTriangularMatrix SS = Cholesky(QQ).t();
    712 
    713   Matrix SA = SS*AA.t();
    714   Matrix SRF(nObs+nPar, nObs+nPar); SRF = 0;
    715   for (int ii = 1; ii <= nObs; ++ii) {
    716     SRF(ii,ii) = 1.0 / sqrt(PP(ii,ii));
    717   }
    718 
    719   SRF.SubMatrix   (nObs+1, nObs+nPar, 1, nObs) = SA;
    720   SRF.SymSubMatrix(nObs+1, nObs+nPar)          = SS;
    721  
    722   UpperTriangularMatrix UU;
    723   QRZ(SRF, UU);
    724  
    725   SS = UU.SymSubMatrix(nObs+1, nObs+nPar);
    726   UpperTriangularMatrix SH_rt = UU.SymSubMatrix(1, nObs);
    727   Matrix YY  = UU.SubMatrix(1, nObs, nObs+1, nObs+nPar);
    728  
    729   UpperTriangularMatrix SHi = SH_rt.i();
    730  
    731   Matrix KT  = SHi * YY;
    732   SymmetricMatrix Hi; Hi << SHi * SHi.t();
    733 
    734   dx = KT.t() * ll;
    735   QQ << (SS.t() * SS);
    736 }
    737 
    738701// Phase Wind-Up Correction
    739702///////////////////////////////////////////////////////////////////////////
  • trunk/BNC/src/PPP_free/pppFilter.h

    r6112 r6162  
    184184  }
    185185
    186   static void kalman(const Matrix& AA, const ColumnVector& ll,
    187                      const DiagonalMatrix& PP,
    188                      SymmetricMatrix& QQ, ColumnVector& dx);
    189 
    190186 private:
    191187  void   reset();
Note: See TracChangeset for help on using the changeset viewer.