Index: /trunk/BNC/src/rinex/reqcanalyze.cpp
===================================================================
--- /trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 4360)
+++ /trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 4361)
@@ -40,4 +40,5 @@
 
 #include <iostream>
+#include <iomanip>
 #include "reqcanalyze.h"
 #include "bncapp.h"
@@ -216,5 +217,5 @@
     QString          prn     = it.key();
     const t_satStat& satStat = it.value();
-    analyzeMultipath(prn, satStat, xyz, dataMP1, dataMP2);
+    analyzeMultipath(prn, satStat, xyz, obsFile->interval(), dataMP1, dataMP2);
   }
 
@@ -243,4 +244,11 @@
       newObs->_MP1 = obs.p1() - L1 - 2.0*f2*f2/(f1*f1-f2*f2) * (L1 - L2);
       okFlag = true;
+
+      //// beg test
+      // cout.setf(ios::fixed);
+      // cout << obs.satSys << setw(2) << obs.satNum << " "
+      //      << setprecision(1) << obs.GPSWeeks << " " 
+      //      << setprecision(4) << newObs->_MP1 << endl;
+      //// end test
     }
     if (obs.p2() != 0.0) {
@@ -265,12 +273,13 @@
                                      const t_satStat& satStat,
                                      const ColumnVector& xyz,
+                                     double obsInterval,
                                      QVector<t_polarPoint*>* dataMP1, 
                                      QVector<t_polarPoint*>* dataMP2) {
 
-  const int    LENGTH = 120;  // number of epochs in one chunk
-
-  int numEpo = satStat.anaObs.size();
-
-  for (int chunkStart = 0; chunkStart + LENGTH < numEpo; chunkStart += LENGTH) {
+  const int chunkStep =  30.0 / obsInterval; // chunk step (30 sec)  
+  const int numEpo    = 600.0 / obsInterval; // # epochs in one chunk (10 min)
+
+  for (int chunkStart = 0; chunkStart + numEpo < satStat.anaObs.size();
+       chunkStart += chunkStep) {
 
     // Compute Mean
@@ -280,5 +289,5 @@
     double mean2    = 0.0;
 
-    for (int ii = 0; ii < LENGTH; ii++) {
+    for (int ii = 0; ii < numEpo; ii++) {
       int iEpo = chunkStart + ii;
       const t_anaObs* anaObs = satStat.anaObs[iEpo];
@@ -302,6 +311,6 @@
     }
 
-    mean1 /= LENGTH;
-    mean2 /= LENGTH;
+    mean1 /= numEpo;
+    mean2 /= numEpo;
 
     // Compute Standard Deviation
@@ -309,5 +318,5 @@
     double stddev1 = 0.0;
     double stddev2 = 0.0;
-    for (int ii = 0; ii < LENGTH; ii++) {
+    for (int ii = 0; ii < numEpo; ii++) {
       int iEpo = chunkStart + ii;
       const t_anaObs* anaObs = satStat.anaObs[iEpo];
@@ -317,6 +326,6 @@
       stddev2 += diff2 * diff2;
     }
-    double MP1 = sqrt(stddev1 / (LENGTH-1));
-    double MP2 = sqrt(stddev2 / (LENGTH-1));
+    double MP1 = sqrt(stddev1 / (numEpo-1));
+    double MP2 = sqrt(stddev2 / (numEpo-1));
 
     const t_anaObs* anaObs0 = satStat.anaObs[chunkStart];
Index: /trunk/BNC/src/rinex/reqcanalyze.h
===================================================================
--- /trunk/BNC/src/rinex/reqcanalyze.h	(revision 4360)
+++ /trunk/BNC/src/rinex/reqcanalyze.h	(revision 4361)
@@ -84,4 +84,5 @@
                         const t_satStat& satStat,
                         const ColumnVector& xyz,
+                        double obsInterval,
                         QVector<t_polarPoint*>* dataMP1, 
                         QVector<t_polarPoint*>* dataMP2);
