mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-11-19 00:04:58 +00:00
Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into next
This commit is contained in:
commit
4154533812
@ -32,12 +32,11 @@
|
|||||||
#ifndef GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_
|
#ifndef GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_
|
#define GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "galileo_pcps_8ms_acquisition_cc.h"
|
#include "galileo_pcps_8ms_acquisition_cc.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -123,6 +122,7 @@ public:
|
|||||||
* \brief Restart acquisition algorithm
|
* \brief Restart acquisition algorithm
|
||||||
*/
|
*/
|
||||||
void reset() override;
|
void reset() override;
|
||||||
|
void set_state(int state __attribute__((unused))) override{};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -130,7 +130,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -32,12 +32,11 @@
|
|||||||
#ifndef GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_
|
#ifndef GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_
|
#define GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_cccwsr_acquisition_cc.h"
|
#include "pcps_cccwsr_acquisition_cc.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -124,7 +123,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
#ifndef GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_
|
#ifndef GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_
|
#define GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_quicksync_acquisition_cc.h"
|
#include "pcps_quicksync_acquisition_cc.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
@ -127,7 +127,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -32,12 +32,11 @@
|
|||||||
#ifndef GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_
|
#ifndef GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_
|
#define GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_tong_acquisition_cc.h"
|
#include "pcps_tong_acquisition_cc.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -127,7 +126,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -38,10 +38,10 @@
|
|||||||
#ifndef GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_
|
#ifndef GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_
|
||||||
#define GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_
|
#define GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h"
|
#include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ public:
|
|||||||
* first available sample.
|
* first available sample.
|
||||||
* \param state - int=1 forces start of acquisition
|
* \param state - int=1 forces start of acquisition
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -121,7 +121,7 @@ public:
|
|||||||
* first available sample.
|
* first available sample.
|
||||||
* \param state - int=1 forces start of acquisition
|
* \param state - int=1 forces start of acquisition
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float calculate_threshold(float pfa);
|
float calculate_threshold(float pfa);
|
||||||
|
@ -130,7 +130,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -129,7 +129,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -134,7 +134,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -33,12 +33,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
|
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
|
||||||
#include <glog/logging.h>
|
|
||||||
#include "gps_sdr_signal_processing.h"
|
#include "gps_sdr_signal_processing.h"
|
||||||
#include "GPS_L1_CA.h"
|
#include "GPS_L1_CA.h"
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include "gnss_sdr_flags.h"
|
#include "gnss_sdr_flags.h"
|
||||||
#include "acq_conf.h"
|
#include "acq_conf.h"
|
||||||
|
#include <glog/logging.h>
|
||||||
|
|
||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
@ -168,6 +168,12 @@ void GpsL1CaPcpsAcquisitionFineDoppler::reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GpsL1CaPcpsAcquisitionFineDoppler::set_state(int state)
|
||||||
|
{
|
||||||
|
acquisition_cc_->set_state(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAcquisitionFineDoppler::connect(boost::shared_ptr<gr::top_block> top_block)
|
void GpsL1CaPcpsAcquisitionFineDoppler::connect(boost::shared_ptr<gr::top_block> top_block)
|
||||||
{
|
{
|
||||||
if (top_block)
|
if (top_block)
|
||||||
|
@ -34,11 +34,10 @@
|
|||||||
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_
|
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_
|
#define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_acquisition_fine_doppler_cc.h"
|
#include "pcps_acquisition_fine_doppler_cc.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -122,6 +121,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
void reset() override;
|
void reset() override;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
|
*/
|
||||||
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
pcps_acquisition_fine_doppler_cc_sptr acquisition_cc_;
|
pcps_acquisition_fine_doppler_cc_sptr acquisition_cc_;
|
||||||
size_t item_size_;
|
size_t item_size_;
|
||||||
|
@ -132,7 +132,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -34,11 +34,10 @@
|
|||||||
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_
|
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_
|
#define GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_assisted_acquisition_cc.h"
|
#include "pcps_assisted_acquisition_cc.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -121,6 +120,7 @@ public:
|
|||||||
* \brief Restart acquisition algorithm
|
* \brief Restart acquisition algorithm
|
||||||
*/
|
*/
|
||||||
void reset() override;
|
void reset() override;
|
||||||
|
void set_state(int state __attribute__((unused))) override{};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
pcps_assisted_acquisition_cc_sptr acquisition_cc_;
|
pcps_assisted_acquisition_cc_sptr acquisition_cc_;
|
||||||
|
@ -32,12 +32,11 @@
|
|||||||
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_
|
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_
|
#define GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_opencl_acquisition_cc.h"
|
#include "pcps_opencl_acquisition_cc.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -123,6 +122,7 @@ public:
|
|||||||
* \brief Restart acquisition algorithm
|
* \brief Restart acquisition algorithm
|
||||||
*/
|
*/
|
||||||
void reset() override;
|
void reset() override;
|
||||||
|
void set_state(int state __attribute__((unused))) override{};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -33,13 +33,12 @@
|
|||||||
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_
|
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_
|
#define GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_quicksync_acquisition_cc.h"
|
#include "pcps_quicksync_acquisition_cc.h"
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -129,7 +128,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -32,12 +32,12 @@
|
|||||||
#ifndef GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_
|
#ifndef GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_
|
||||||
#define GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_
|
#define GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <gnuradio/blocks/stream_to_vector.h>
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acquisition_interface.h"
|
#include "acquisition_interface.h"
|
||||||
#include "pcps_tong_acquisition_cc.h"
|
#include "pcps_tong_acquisition_cc.h"
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
|
#include <gnuradio/blocks/stream_to_vector.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -132,7 +132,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -132,7 +132,7 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
* \brief If state = 1, it forces the block to start acquiring from the first sample
|
||||||
*/
|
*/
|
||||||
void set_state(int state);
|
void set_state(int state) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConfigurationInterface* configuration_;
|
ConfigurationInterface* configuration_;
|
||||||
|
@ -133,6 +133,12 @@ void pcps_acquisition_fine_doppler_cc::set_doppler_step(unsigned int doppler_ste
|
|||||||
{
|
{
|
||||||
d_grid_data[i] = static_cast<float *>(volk_gnsssdr_malloc(d_fft_size * sizeof(float), volk_gnsssdr_get_alignment()));
|
d_grid_data[i] = static_cast<float *>(volk_gnsssdr_malloc(d_fft_size * sizeof(float), volk_gnsssdr_get_alignment()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d_dump)
|
||||||
|
{
|
||||||
|
grid_ = arma::fmat(d_fft_size, d_num_doppler_points, arma::fill::zeros);
|
||||||
|
}
|
||||||
|
|
||||||
update_carrier_wipeoff();
|
update_carrier_wipeoff();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,11 +187,6 @@ void pcps_acquisition_fine_doppler_cc::init()
|
|||||||
d_gnss_synchro->Acq_doppler_hz = 0.0;
|
d_gnss_synchro->Acq_doppler_hz = 0.0;
|
||||||
d_gnss_synchro->Acq_samplestamp_samples = 0;
|
d_gnss_synchro->Acq_samplestamp_samples = 0;
|
||||||
d_state = 0;
|
d_state = 0;
|
||||||
|
|
||||||
if (d_dump)
|
|
||||||
{
|
|
||||||
grid_ = arma::fmat(d_fft_size, d_num_doppler_points, arma::fill::zeros);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -261,7 +262,6 @@ double pcps_acquisition_fine_doppler_cc::compute_CAF()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -- - Find 1 chip wide code phase exclude range around the peak
|
// -- - Find 1 chip wide code phase exclude range around the peak
|
||||||
uint32_t samplesPerChip = ceil(GPS_L1_CA_CHIP_PERIOD * static_cast<float>(this->d_fs_in));
|
uint32_t samplesPerChip = ceil(GPS_L1_CA_CHIP_PERIOD * static_cast<float>(this->d_fs_in));
|
||||||
int32_t excludeRangeIndex1 = index_time - samplesPerChip;
|
int32_t excludeRangeIndex1 = index_time - samplesPerChip;
|
||||||
@ -364,7 +364,6 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler()
|
|||||||
//int fft_size_extended = nextPowerOf2(signal_samples * zero_padding_factor);
|
//int fft_size_extended = nextPowerOf2(signal_samples * zero_padding_factor);
|
||||||
int fft_size_extended = signal_samples * zero_padding_factor;
|
int fft_size_extended = signal_samples * zero_padding_factor;
|
||||||
gr::fft::fft_complex *fft_operator = new gr::fft::fft_complex(fft_size_extended, true);
|
gr::fft::fft_complex *fft_operator = new gr::fft::fft_complex(fft_size_extended, true);
|
||||||
|
|
||||||
//zero padding the entire vector
|
//zero padding the entire vector
|
||||||
std::fill_n(fft_operator->get_inbuf(), fft_size_extended, gr_complex(0.0, 0.0));
|
std::fill_n(fft_operator->get_inbuf(), fft_size_extended, gr_complex(0.0, 0.0));
|
||||||
|
|
||||||
@ -386,7 +385,6 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler()
|
|||||||
memcpy(&code_replica[(n + 1) * d_fft_size], code_replica, d_fft_size * sizeof(gr_complex));
|
memcpy(&code_replica[(n + 1) * d_fft_size], code_replica, d_fft_size * sizeof(gr_complex));
|
||||||
}
|
}
|
||||||
//2. Perform code wipe-off
|
//2. Perform code wipe-off
|
||||||
|
|
||||||
volk_32fc_x2_multiply_32fc(fft_operator->get_inbuf(), d_10_ms_buffer, code_replica, signal_samples);
|
volk_32fc_x2_multiply_32fc(fft_operator->get_inbuf(), d_10_ms_buffer, code_replica, signal_samples);
|
||||||
|
|
||||||
// 3. Perform the FFT (zero padded!)
|
// 3. Perform the FFT (zero padded!)
|
||||||
@ -402,8 +400,8 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler()
|
|||||||
|
|
||||||
//case even
|
//case even
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
float *fftFreqBins = new float[fft_size_extended];
|
||||||
|
|
||||||
float fftFreqBins[fft_size_extended];
|
|
||||||
std::fill_n(fftFreqBins, fft_size_extended, 0.0);
|
std::fill_n(fftFreqBins, fft_size_extended, 0.0);
|
||||||
|
|
||||||
for (int k = 0; k < (fft_size_extended / 2); k++)
|
for (int k = 0; k < (fft_size_extended / 2); k++)
|
||||||
@ -414,7 +412,7 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler()
|
|||||||
|
|
||||||
for (int k = fft_size_extended / 2; k > 0; k--)
|
for (int k = fft_size_extended / 2; k > 0; k--)
|
||||||
{
|
{
|
||||||
fftFreqBins[counter] = ((-static_cast<float>(d_fs_in) / 2) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0);
|
fftFreqBins[counter] = ((-static_cast<float>(d_fs_in) / 2.0) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0);
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -434,9 +432,11 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler()
|
|||||||
delete fft_operator;
|
delete fft_operator;
|
||||||
volk_gnsssdr_free(code_replica);
|
volk_gnsssdr_free(code_replica);
|
||||||
volk_gnsssdr_free(p_tmp_vector);
|
volk_gnsssdr_free(p_tmp_vector);
|
||||||
|
delete[] fftFreqBins;
|
||||||
return d_fft_size;
|
return d_fft_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Called by gnuradio to enable drivers, etc for i/o devices.
|
// Called by gnuradio to enable drivers, etc for i/o devices.
|
||||||
bool pcps_acquisition_fine_doppler_cc::start()
|
bool pcps_acquisition_fine_doppler_cc::start()
|
||||||
{
|
{
|
||||||
@ -444,6 +444,32 @@ bool pcps_acquisition_fine_doppler_cc::start()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void pcps_acquisition_fine_doppler_cc::set_state(int state)
|
||||||
|
{
|
||||||
|
//gr::thread::scoped_lock lock(d_setlock); // require mutex with work function called by the scheduler
|
||||||
|
d_state = state;
|
||||||
|
|
||||||
|
if (d_state == 1)
|
||||||
|
{
|
||||||
|
d_gnss_synchro->Acq_delay_samples = 0.0;
|
||||||
|
d_gnss_synchro->Acq_doppler_hz = 0.0;
|
||||||
|
d_gnss_synchro->Acq_samplestamp_samples = 0;
|
||||||
|
d_well_count = 0;
|
||||||
|
d_test_statistics = 0.0;
|
||||||
|
d_active = true;
|
||||||
|
reset_grid();
|
||||||
|
}
|
||||||
|
else if (d_state == 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG(ERROR) << "State can only be set to 0 or 1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
|
int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
|
||||||
gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items,
|
gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items,
|
||||||
gr_vector_void_star &output_items __attribute__((unused)))
|
gr_vector_void_star &output_items __attribute__((unused)))
|
||||||
@ -498,11 +524,6 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
|
|||||||
d_state = 5; //negative acquisition
|
d_state = 5; //negative acquisition
|
||||||
}
|
}
|
||||||
d_n_samples_in_buffer = 0;
|
d_n_samples_in_buffer = 0;
|
||||||
// Record results to file if required
|
|
||||||
if (d_dump and d_channel == d_dump_channel)
|
|
||||||
{
|
|
||||||
dump_results(d_fft_size);
|
|
||||||
}
|
|
||||||
d_sample_counter += d_fft_size; // sample counter
|
d_sample_counter += d_fft_size; // sample counter
|
||||||
consume_each(d_fft_size);
|
consume_each(d_fft_size);
|
||||||
break;
|
break;
|
||||||
@ -535,6 +556,11 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
|
|||||||
DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
|
DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
|
||||||
d_positive_acq = 1;
|
d_positive_acq = 1;
|
||||||
d_active = false;
|
d_active = false;
|
||||||
|
// Record results to file if required
|
||||||
|
if (d_dump and d_channel == d_dump_channel)
|
||||||
|
{
|
||||||
|
dump_results(d_fft_size);
|
||||||
|
}
|
||||||
// Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
|
// Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
|
||||||
this->message_port_pub(pmt::mp("events"), pmt::from_long(1));
|
this->message_port_pub(pmt::mp("events"), pmt::from_long(1));
|
||||||
d_state = 0;
|
d_state = 0;
|
||||||
@ -554,6 +580,11 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items,
|
|||||||
DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
|
DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
|
||||||
d_positive_acq = 0;
|
d_positive_acq = 0;
|
||||||
d_active = false;
|
d_active = false;
|
||||||
|
// Record results to file if required
|
||||||
|
if (d_dump and d_channel == d_dump_channel)
|
||||||
|
{
|
||||||
|
dump_results(d_fft_size);
|
||||||
|
}
|
||||||
// Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
|
// Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
|
||||||
this->message_port_pub(pmt::mp("events"), pmt::from_long(2));
|
this->message_port_pub(pmt::mp("events"), pmt::from_long(2));
|
||||||
d_state = 0;
|
d_state = 0;
|
||||||
|
@ -51,12 +51,12 @@
|
|||||||
|
|
||||||
#include "gnss_synchro.h"
|
#include "gnss_synchro.h"
|
||||||
#include "acq_conf.h"
|
#include "acq_conf.h"
|
||||||
|
#include <armadillo>
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <gnuradio/gr_complex.h>
|
#include <gnuradio/gr_complex.h>
|
||||||
#include <gnuradio/fft/fft.h>
|
#include <gnuradio/fft/fft.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <armadillo>
|
|
||||||
|
|
||||||
class pcps_acquisition_fine_doppler_cc;
|
class pcps_acquisition_fine_doppler_cc;
|
||||||
|
|
||||||
@ -70,7 +70,6 @@ pcps_make_acquisition_fine_doppler_cc(const Acq_Conf& conf_);
|
|||||||
* \brief This class implements a Parallel Code Phase Search Acquisition.
|
* \brief This class implements a Parallel Code Phase Search Acquisition.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class pcps_acquisition_fine_doppler_cc : public gr::block
|
class pcps_acquisition_fine_doppler_cc : public gr::block
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -131,7 +130,6 @@ private:
|
|||||||
long int d_dump_number;
|
long int d_dump_number;
|
||||||
unsigned int d_dump_channel;
|
unsigned int d_dump_channel;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
* \brief Default destructor.
|
* \brief Default destructor.
|
||||||
@ -212,6 +210,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
void set_doppler_step(unsigned int doppler_step);
|
void set_doppler_step(unsigned int doppler_step);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief If set to 1, ensures that acquisition starts at the
|
||||||
|
* first available sample.
|
||||||
|
* \param state - int=1 forces start of acquisition
|
||||||
|
*/
|
||||||
|
void set_state(int state);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Parallel Code Phase Search Acquisition signal processing.
|
* \brief Parallel Code Phase Search Acquisition signal processing.
|
||||||
*/
|
*/
|
||||||
|
@ -61,6 +61,7 @@ public:
|
|||||||
virtual void set_doppler_step(unsigned int doppler_step) = 0;
|
virtual void set_doppler_step(unsigned int doppler_step) = 0;
|
||||||
virtual void init() = 0;
|
virtual void init() = 0;
|
||||||
virtual void set_local_code() = 0;
|
virtual void set_local_code() = 0;
|
||||||
|
virtual void set_state(int state) = 0;
|
||||||
virtual signed int mag() = 0;
|
virtual signed int mag() = 0;
|
||||||
virtual void reset() = 0;
|
virtual void reset() = 0;
|
||||||
};
|
};
|
||||||
|
@ -33,6 +33,8 @@
|
|||||||
#include "signal_generator_flags.h"
|
#include "signal_generator_flags.h"
|
||||||
#include "tracking_true_obs_reader.h"
|
#include "tracking_true_obs_reader.h"
|
||||||
#include "true_observables_reader.h"
|
#include "true_observables_reader.h"
|
||||||
|
#include "gps_l1_ca_pcps_acquisition.h"
|
||||||
|
#include "gps_l1_ca_pcps_acquisition_fine_doppler.h"
|
||||||
#include "display.h"
|
#include "display.h"
|
||||||
#include "gnuplot_i.h"
|
#include "gnuplot_i.h"
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
@ -42,6 +44,7 @@
|
|||||||
|
|
||||||
DEFINE_string(config_file_ptest, std::string(""), "File containing alternative configuration parameters for the acquisition performance test.");
|
DEFINE_string(config_file_ptest, std::string(""), "File containing alternative configuration parameters for the acquisition performance test.");
|
||||||
DEFINE_string(acq_test_input_file, std::string(""), "File containing raw signal data, must be in int8_t format. The signal generator will not be used.");
|
DEFINE_string(acq_test_input_file, std::string(""), "File containing raw signal data, must be in int8_t format. The signal generator will not be used.");
|
||||||
|
DEFINE_string(acq_test_implementation, std::string("GPS_L1_CA_PCPS_Acquisition"), "Acquisition block implementation under test. Alternative: GPS_L1_CA_PCPS_Acquisition_Fine_Doppler");
|
||||||
|
|
||||||
DEFINE_int32(acq_test_doppler_max, 5000, "Maximum Doppler, in Hz");
|
DEFINE_int32(acq_test_doppler_max, 5000, "Maximum Doppler, in Hz");
|
||||||
DEFINE_int32(acq_test_doppler_step, 125, "Doppler step, in Hz.");
|
DEFINE_int32(acq_test_doppler_step, 125, "Doppler step, in Hz.");
|
||||||
@ -200,7 +203,6 @@ protected:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::vector<double> cn0_vector;
|
std::vector<double> cn0_vector;
|
||||||
std::vector<float> pfa_vector;
|
std::vector<float> pfa_vector;
|
||||||
|
|
||||||
@ -223,7 +225,7 @@ protected:
|
|||||||
|
|
||||||
gr::msg_queue::sptr queue;
|
gr::msg_queue::sptr queue;
|
||||||
gr::top_block_sptr top_block;
|
gr::top_block_sptr top_block;
|
||||||
std::shared_ptr<GpsL1CaPcpsAcquisition> acquisition;
|
std::shared_ptr<AcquisitionInterface> acquisition;
|
||||||
std::shared_ptr<InMemoryConfiguration> config;
|
std::shared_ptr<InMemoryConfiguration> config;
|
||||||
std::shared_ptr<FileConfiguration> config_f;
|
std::shared_ptr<FileConfiguration> config_f;
|
||||||
Gnss_Synchro gnss_synchro;
|
Gnss_Synchro gnss_synchro;
|
||||||
@ -235,7 +237,7 @@ protected:
|
|||||||
int message;
|
int message;
|
||||||
boost::thread ch_thread;
|
boost::thread ch_thread;
|
||||||
|
|
||||||
std::string implementation = "GPS_L1_CA_PCPS_Acquisition";
|
std::string implementation = FLAGS_acq_test_implementation;
|
||||||
|
|
||||||
const double baseband_sampling_freq = static_cast<double>(FLAGS_fs_gen_sps);
|
const double baseband_sampling_freq = static_cast<double>(FLAGS_fs_gen_sps);
|
||||||
const int coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
const int coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
@ -379,6 +381,7 @@ int AcquisitionPerformanceTest::configure_receiver(double cn0, float pfa, unsign
|
|||||||
config->set_property("Acquisition_1C.implementation", implementation);
|
config->set_property("Acquisition_1C.implementation", implementation);
|
||||||
config->set_property("Acquisition_1C.item_type", "gr_complex");
|
config->set_property("Acquisition_1C.item_type", "gr_complex");
|
||||||
config->set_property("Acquisition_1C.doppler_max", std::to_string(doppler_max));
|
config->set_property("Acquisition_1C.doppler_max", std::to_string(doppler_max));
|
||||||
|
config->set_property("Acquisition_1C.doppler_min", std::to_string(-doppler_max));
|
||||||
config->set_property("Acquisition_1C.doppler_step", std::to_string(doppler_step));
|
config->set_property("Acquisition_1C.doppler_step", std::to_string(doppler_step));
|
||||||
|
|
||||||
config->set_property("Acquisition_1C.threshold", std::to_string(pfa));
|
config->set_property("Acquisition_1C.threshold", std::to_string(pfa));
|
||||||
@ -457,23 +460,39 @@ int AcquisitionPerformanceTest::run_receiver()
|
|||||||
|
|
||||||
int nsamples = floor(config->property("GNSS-SDR.internal_fs_sps", 2000000) * generated_signal_duration_s);
|
int nsamples = floor(config->property("GNSS-SDR.internal_fs_sps", 2000000) * generated_signal_duration_s);
|
||||||
boost::shared_ptr<gr::block> valve = gnss_sdr_make_valve(sizeof(gr_complex), nsamples, queue);
|
boost::shared_ptr<gr::block> valve = gnss_sdr_make_valve(sizeof(gr_complex), nsamples, queue);
|
||||||
|
if (implementation.compare("GPS_L1_CA_PCPS_Acquisition") == 0)
|
||||||
|
{
|
||||||
|
acquisition = std::make_shared<GpsL1CaPcpsAcquisition>(config.get(), "Acquisition_1C", 1, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (implementation.compare("GPS_L1_CA_PCPS_Acquisition_Fine_Doppler") == 0)
|
||||||
|
{
|
||||||
|
acquisition = std::make_shared<GpsL1CaPcpsAcquisitionFineDoppler>(config.get(), "Acquisition_1C", 1, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool aux = false;
|
||||||
|
EXPECT_EQ(true, aux);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
acquisition = std::make_shared<GpsL1CaPcpsAcquisition>(config.get(), "Acquisition_1C", 1, 0);
|
|
||||||
acquisition->set_gnss_synchro(&gnss_synchro);
|
acquisition->set_gnss_synchro(&gnss_synchro);
|
||||||
acquisition->set_channel(0);
|
acquisition->set_channel(0);
|
||||||
acquisition->set_local_code();
|
|
||||||
acquisition->set_doppler_max(config->property("Acquisition_1C.doppler_max", 10000));
|
acquisition->set_doppler_max(config->property("Acquisition_1C.doppler_max", 10000));
|
||||||
acquisition->set_doppler_step(config->property("Acquisition_1C.doppler_step", 500));
|
acquisition->set_doppler_step(config->property("Acquisition_1C.doppler_step", 500));
|
||||||
acquisition->set_threshold(config->property("Acquisition_1C.threshold", 0.0));
|
acquisition->set_threshold(config->property("Acquisition_1C.threshold", 0.0));
|
||||||
|
acquisition->init();
|
||||||
|
acquisition->set_local_code();
|
||||||
|
|
||||||
acquisition->set_state(1); // Ensure that acquisition starts at the first sample
|
acquisition->set_state(1); // Ensure that acquisition starts at the first sample
|
||||||
acquisition->connect(top_block);
|
acquisition->connect(top_block);
|
||||||
top_block->msg_connect(acquisition->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events"));
|
|
||||||
|
|
||||||
acquisition->init();
|
|
||||||
|
|
||||||
|
acquisition->reset();
|
||||||
top_block->connect(file_source, 0, gr_interleaved_char_to_complex, 0);
|
top_block->connect(file_source, 0, gr_interleaved_char_to_complex, 0);
|
||||||
top_block->connect(gr_interleaved_char_to_complex, 0, valve, 0);
|
top_block->connect(gr_interleaved_char_to_complex, 0, valve, 0);
|
||||||
top_block->connect(valve, 0, acquisition->get_left_block(), 0);
|
top_block->connect(valve, 0, acquisition->get_left_block(), 0);
|
||||||
|
top_block->msg_connect(acquisition->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events"));
|
||||||
|
|
||||||
start_queue();
|
start_queue();
|
||||||
|
|
||||||
@ -534,6 +553,14 @@ void AcquisitionPerformanceTest::plot_results()
|
|||||||
Gnuplot::set_GNUPlotPath(gnuplot_path);
|
Gnuplot::set_GNUPlotPath(gnuplot_path);
|
||||||
|
|
||||||
Gnuplot g1("linespoints");
|
Gnuplot g1("linespoints");
|
||||||
|
if (FLAGS_show_plots)
|
||||||
|
{
|
||||||
|
g1.showonscreen(); // window output
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g1.disablescreen();
|
||||||
|
}
|
||||||
g1.cmd("set font \"Times,18\"");
|
g1.cmd("set font \"Times,18\"");
|
||||||
g1.set_title("Receiver Operating Characteristic for GPS L1 C/A acquisition");
|
g1.set_title("Receiver Operating Characteristic for GPS L1 C/A acquisition");
|
||||||
g1.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\"");
|
g1.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\"");
|
||||||
@ -560,9 +587,16 @@ void AcquisitionPerformanceTest::plot_results()
|
|||||||
g1.set_legend();
|
g1.set_legend();
|
||||||
g1.savetops("ROC");
|
g1.savetops("ROC");
|
||||||
g1.savetopdf("ROC", 18);
|
g1.savetopdf("ROC", 18);
|
||||||
if (FLAGS_show_plots) g1.showonscreen(); // window output
|
|
||||||
|
|
||||||
Gnuplot g2("linespoints");
|
Gnuplot g2("linespoints");
|
||||||
|
if (FLAGS_show_plots)
|
||||||
|
{
|
||||||
|
g2.showonscreen(); // window output
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g2.disablescreen();
|
||||||
|
}
|
||||||
g2.cmd("set font \"Times,18\"");
|
g2.cmd("set font \"Times,18\"");
|
||||||
g2.set_title("Receiver Operating Characteristic for GPS L1 C/A valid acquisition");
|
g2.set_title("Receiver Operating Characteristic for GPS L1 C/A valid acquisition");
|
||||||
g2.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\"");
|
g2.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\"");
|
||||||
@ -589,7 +623,6 @@ void AcquisitionPerformanceTest::plot_results()
|
|||||||
g2.set_legend();
|
g2.set_legend();
|
||||||
g2.savetops("ROC-valid-detection");
|
g2.savetops("ROC-valid-detection");
|
||||||
g2.savetopdf("ROC-valid-detection", 18);
|
g2.savetopdf("ROC-valid-detection", 18);
|
||||||
if (FLAGS_show_plots) g2.showonscreen(); // window output
|
|
||||||
}
|
}
|
||||||
catch (const GnuplotException& ge)
|
catch (const GnuplotException& ge)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user