[hamradio-commits] [gnss-sdr] 226/303: Check carrier phase evolution per satellite
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Mon Feb 13 22:36:03 UTC 2017
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.
commit 938db73b4337f8be34594d7db027fa8b4138a4b8
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Tue Jan 10 20:59:20 2017 +0100
Check carrier phase evolution per satellite
---
src/tests/system-tests/obs_gps_l1_system_test.cc | 49 +++++++++++-------------
1 file changed, 23 insertions(+), 26 deletions(-)
diff --git a/src/tests/system-tests/obs_gps_l1_system_test.cc b/src/tests/system-tests/obs_gps_l1_system_test.cc
index 54a22cd..06c6063 100644
--- a/src/tests/system-tests/obs_gps_l1_system_test.cc
+++ b/src/tests/system-tests/obs_gps_l1_system_test.cc
@@ -87,6 +87,7 @@ public:
void check_results();
bool check_valid_rinex_nav(std::string filename); // return true if the file is a valid Rinex navigation file.
bool check_valid_rinex_obs(std::string filename); // return true if the file is a valid Rinex observation file.
+ double compute_stdev(const std::vector<double> & vec);
std::shared_ptr<InMemoryConfiguration> config;
std::string generated_rinex_obs;
@@ -101,6 +102,19 @@ bool Obs_Gps_L1_System_Test::check_valid_rinex_nav(std::string filename)
}
+double Obs_Gps_L1_System_Test::compute_stdev(const std::vector<double> & vec)
+{
+ double sum__ = std::accumulate(vec.begin(), vec.end(), 0.0);
+ double mean__ = sum__ / vec.size();
+ double accum__ = 0.0;
+ std::for_each (std::begin(vec), std::end(vec), [&](const double d) {
+ accum__ += (d - mean__) * (d - mean__);
+ });
+ double stdev__ = std::sqrt(accum__ / (vec.size() - 1));
+ return stdev__;
+}
+
+
bool Obs_Gps_L1_System_Test::check_valid_rinex_obs(std::string filename)
{
bool res = false;
@@ -527,7 +541,7 @@ void Obs_Gps_L1_System_Test::check_results()
{
carrierphase_ref_aligned.at(prn_id).push_back(*it);
cp_diff.at(prn_id).push_back(it->second - it2->second );
- // std::cout << "Sat " << prn_id << ": " << "Carrier_ref=" << it->second << " Carrier_meas=" << it2->second << std::endl;
+ // std::cout << "Sat " << prn_id << ": " << "Carrier_ref=" << it->second << " Carrier_meas=" << it2->second << " Diff:" << it->second - it2->second << std::endl;
}
}
}
@@ -568,7 +582,7 @@ void Obs_Gps_L1_System_Test::check_results()
{
mean_diff = mean_diff / number_obs;
mean_pr_diff_v.push_back(mean_diff);
- std::cout << "-- Mean pseudorange difference for sat " << prn_id << ": " << mean_diff << std::endl;
+ std::cout << "-- Mean pseudorange difference for sat " << prn_id << ": " << mean_diff << " [m]" << std::endl;
}
else
{
@@ -577,13 +591,7 @@ void Obs_Gps_L1_System_Test::check_results()
prn_id++;
}
- double sum_ = std::accumulate(mean_pr_diff_v.begin(), mean_pr_diff_v.end(), 0.0);
- double mean_ = sum_ / mean_pr_diff_v.size();
- double accum = 0.0;
- std::for_each (std::begin(mean_pr_diff_v), std::end(mean_pr_diff_v), [&](const double d) {
- accum += (d - mean_) * (d - mean_);
- });
- double stdev_pr = std::sqrt(accum / (mean_pr_diff_v.size() - 1));
+ double stdev_pr = compute_stdev(mean_pr_diff_v);
std::cout << "Pseudorange diff error stdev = " << stdev_pr << " [m]" << std::endl;
ASSERT_LT(stdev_pr, 1.0);
@@ -604,7 +612,9 @@ void Obs_Gps_L1_System_Test::check_results()
{
mean_diff = mean_diff / number_obs;
mean_cp_diff_v.push_back(mean_diff);
- std::cout << "-- Mean carrier phase difference for sat " << prn_id << ": " << mean_diff << std::endl;
+ std::cout << "-- Mean carrier phase difference for sat " << prn_id << ": " << mean_diff;
+ double stdev_pr_ = compute_stdev(*iter_diff);
+ std::cout << " +/- " << stdev_pr_ << " whole cycles (19 cm)" << std::endl;
}
else
{
@@ -613,14 +623,6 @@ void Obs_Gps_L1_System_Test::check_results()
prn_id++;
}
- sum_ = std::accumulate(mean_cp_diff_v.begin(), mean_cp_diff_v.end(), 0.0);
- mean_ = sum_ / mean_cp_diff_v.size();
- accum = 0.0;
- std::for_each (std::begin(mean_cp_diff_v), std::end(mean_cp_diff_v), [&](const double d) {
- accum += (d - mean_) * (d - mean_);
- });
- double stdev_cp = std::sqrt(accum / (mean_cp_diff_v.size() - 1));
- std::cout << "Carrier phase diff error stdev = " << stdev_cp << " whole cycles (19 cm)" << std::endl;
// Compute Doppler error
prn_id = 0;
@@ -640,7 +642,7 @@ void Obs_Gps_L1_System_Test::check_results()
{
mean_diff = mean_diff / number_obs;
mean_doppler_v.push_back(mean_diff);
- std::cout << "-- Mean Doppler difference for sat " << prn_id << ": " << mean_diff << std::endl;
+ std::cout << "-- Mean Doppler difference for sat " << prn_id << ": " << mean_diff << " [Hz]" << std::endl;
}
else
{
@@ -649,13 +651,8 @@ void Obs_Gps_L1_System_Test::check_results()
prn_id++;
}
- sum_ = std::accumulate(mean_doppler_v.begin(), mean_doppler_v.end(), 0.0);
- mean_ = sum_ / mean_doppler_v.size();
- accum = 0.0;
- std::for_each (std::begin(mean_doppler_v), std::end(mean_doppler_v), [&](const double d) {
- accum += (d - mean_) * (d - mean_);
- });
- double stdev_dp = std::sqrt(accum / (mean_doppler_v.size() - 1));
+
+ double stdev_dp = compute_stdev(mean_doppler_v);
std::cout << "Doppler error stdev = " << stdev_dp << " [Hz]" << std::endl;
ASSERT_LT(stdev_dp, 1.0);
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list