mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-15 19:55:47 +00:00
Better usage of the GSL, other minor cleaning
This commit is contained in:
parent
08c57e2c72
commit
8aaf6019e9
@ -98,6 +98,7 @@ target_link_libraries(acquisition_adapters
|
|||||||
algorithms_libs
|
algorithms_libs
|
||||||
gnss_sdr_flags
|
gnss_sdr_flags
|
||||||
acquisition_gr_blocks
|
acquisition_gr_blocks
|
||||||
|
acquisition_libs
|
||||||
channel_libs
|
channel_libs
|
||||||
core_system_parameters
|
core_system_parameters
|
||||||
Gnuradio::blocks
|
Gnuradio::blocks
|
||||||
@ -108,7 +109,6 @@ target_link_libraries(acquisition_adapters
|
|||||||
Glog::glog
|
Glog::glog
|
||||||
Gnuradio::fft
|
Gnuradio::fft
|
||||||
Volkgnsssdr::volkgnsssdr
|
Volkgnsssdr::volkgnsssdr
|
||||||
acquisition_libs
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(acquisition_adapters
|
target_include_directories(acquisition_adapters
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
|
* Copyright (C) 2010-2019 (see AUTHORS file for a list of contributors)
|
||||||
*
|
*
|
||||||
* GNSS-SDR is a software defined Global Navigation
|
* GNSS-SDR is a software defined Global Navigation
|
||||||
* Satellite Systems receiver
|
* Satellite Systems receiver
|
||||||
@ -212,6 +212,7 @@ void GalileoE1PcpsAmbiguousAcquisition::set_doppler_step(unsigned int doppler_st
|
|||||||
acquisition_->set_doppler_step(doppler_step_);
|
acquisition_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE1PcpsAmbiguousAcquisition::set_doppler_center(int doppler_center)
|
void GalileoE1PcpsAmbiguousAcquisition::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -396,6 +397,7 @@ gr::basic_block_sptr GalileoE1PcpsAmbiguousAcquisition::get_right_block()
|
|||||||
return acquisition_;
|
return acquisition_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE1PcpsAmbiguousAcquisition::set_resampler_latency(uint32_t latency_samples)
|
void GalileoE1PcpsAmbiguousAcquisition::set_resampler_latency(uint32_t latency_samples)
|
||||||
{
|
{
|
||||||
acquisition_->set_resampler_latency(latency_samples);
|
acquisition_->set_resampler_latency(latency_samples);
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include "galileo_e1_signal_processing.h"
|
#include "galileo_e1_signal_processing.h"
|
||||||
#include "gnss_sdr_flags.h"
|
#include "gnss_sdr_flags.h"
|
||||||
#include "gnss_synchro.h"
|
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <gnuradio/fft/fft.h> // for fft_complex
|
#include <gnuradio/fft/fft.h> // for fft_complex
|
||||||
#include <gnuradio/gr_complex.h> // for gr_complex
|
#include <gnuradio/gr_complex.h> // for gr_complex
|
||||||
@ -114,15 +113,15 @@ GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga(
|
|||||||
|
|
||||||
if (acquire_pilot_ == true)
|
if (acquire_pilot_ == true)
|
||||||
{
|
{
|
||||||
//set local signal generator to Galileo E1 pilot component (1C)
|
// set local signal generator to Galileo E1 pilot component (1C)
|
||||||
std::array<char, 3> pilot_signal = {{'1', 'C', '\0'}};
|
std::array<char, 3> pilot_signal = {{'1', 'C', '\0'}};
|
||||||
galileo_e1_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.data(), nsamples_total), pilot_signal,
|
galileo_e1_code_gen_complex_sampled(code, pilot_signal,
|
||||||
cboc, PRN, fs_in, 0, false);
|
cboc, PRN, fs_in, 0, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::array<char, 3> data_signal = {{'1', 'B', '\0'}};
|
std::array<char, 3> data_signal = {{'1', 'B', '\0'}};
|
||||||
galileo_e1_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.data(), nsamples_total), data_signal,
|
galileo_e1_code_gen_complex_sampled(code, data_signal,
|
||||||
cboc, PRN, fs_in, 0, false);
|
cboc, PRN, fs_in, 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,6 +212,7 @@ void GalileoE1PcpsAmbiguousAcquisitionFpga::set_doppler_step(unsigned int dopple
|
|||||||
acquisition_fpga_->set_doppler_step(doppler_step_);
|
acquisition_fpga_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE1PcpsAmbiguousAcquisitionFpga::set_doppler_center(int doppler_center)
|
void GalileoE1PcpsAmbiguousAcquisitionFpga::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -220,6 +220,7 @@ void GalileoE1PcpsAmbiguousAcquisitionFpga::set_doppler_center(int doppler_cente
|
|||||||
acquisition_fpga_->set_doppler_center(doppler_center_);
|
acquisition_fpga_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE1PcpsAmbiguousAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GalileoE1PcpsAmbiguousAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
|
@ -186,7 +186,6 @@ signed int GalileoE1PcpsCccwsrAmbiguousAcquisition::mag()
|
|||||||
void GalileoE1PcpsCccwsrAmbiguousAcquisition::init()
|
void GalileoE1PcpsCccwsrAmbiguousAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -199,12 +198,12 @@ void GalileoE1PcpsCccwsrAmbiguousAcquisition::set_local_code()
|
|||||||
|
|
||||||
std::array<char, 3> signal = {{'1', 'B', '\0'}};
|
std::array<char, 3> signal = {{'1', 'B', '\0'}};
|
||||||
|
|
||||||
galileo_e1_code_gen_complex_sampled(gsl::span<gr_complex>(code_data_.data(), vector_length_), signal,
|
galileo_e1_code_gen_complex_sampled(code_data_, signal,
|
||||||
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
|
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
|
||||||
|
|
||||||
std::array<char, 3> signal_C = {{'1', 'C', '\0'}};
|
std::array<char, 3> signal_C = {{'1', 'C', '\0'}};
|
||||||
|
|
||||||
galileo_e1_code_gen_complex_sampled(gsl::span<gr_complex>(code_pilot_.data(), vector_length_), signal_C,
|
galileo_e1_code_gen_complex_sampled(code_pilot_, signal_C,
|
||||||
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
|
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
|
||||||
|
|
||||||
acquisition_cc_->set_local_code(code_data_.data(), code_pilot_.data());
|
acquisition_cc_->set_local_code(code_data_.data(), code_pilot_.data());
|
||||||
|
@ -209,7 +209,6 @@ signed int GalileoE5aNoncoherentIQAcquisitionCaf::mag()
|
|||||||
void GalileoE5aNoncoherentIQAcquisitionCaf::init()
|
void GalileoE5aNoncoherentIQAcquisitionCaf::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -223,17 +222,17 @@ void GalileoE5aNoncoherentIQAcquisitionCaf::set_local_code()
|
|||||||
if (gnss_synchro_->Signal[0] == '5' && gnss_synchro_->Signal[1] == 'X')
|
if (gnss_synchro_->Signal[0] == '5' && gnss_synchro_->Signal[1] == 'X')
|
||||||
{
|
{
|
||||||
std::array<char, 3> a = {{'5', 'I', '\0'}};
|
std::array<char, 3> a = {{'5', 'I', '\0'}};
|
||||||
galileo_e5_a_code_gen_complex_sampled(gsl::span<std::complex<float>>(codeI.data(), code_length_), a,
|
galileo_e5_a_code_gen_complex_sampled(codeI, a,
|
||||||
gnss_synchro_->PRN, fs_in_, 0);
|
gnss_synchro_->PRN, fs_in_, 0);
|
||||||
|
|
||||||
std::array<char, 3> b = {{'5', 'Q', '\0'}};
|
std::array<char, 3> b = {{'5', 'Q', '\0'}};
|
||||||
galileo_e5_a_code_gen_complex_sampled(gsl::span<std::complex<float>>(codeQ.data(), code_length_), b,
|
galileo_e5_a_code_gen_complex_sampled(codeQ, b,
|
||||||
gnss_synchro_->PRN, fs_in_, 0);
|
gnss_synchro_->PRN, fs_in_, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::array<char, 3> signal_type_ = {{'5', 'X', '\0'}};
|
std::array<char, 3> signal_type_ = {{'5', 'X', '\0'}};
|
||||||
galileo_e5_a_code_gen_complex_sampled(gsl::span<std::complex<float>>(codeI.data(), code_length_), signal_type_,
|
galileo_e5_a_code_gen_complex_sampled(codeI, signal_type_,
|
||||||
gnss_synchro_->PRN, fs_in_, 0);
|
gnss_synchro_->PRN, fs_in_, 0);
|
||||||
}
|
}
|
||||||
// WARNING: 3ms are coherently integrated. Secondary sequence (1,1,1)
|
// WARNING: 3ms are coherently integrated. Secondary sequence (1,1,1)
|
||||||
@ -277,7 +276,7 @@ void GalileoE5aNoncoherentIQAcquisitionCaf::reset()
|
|||||||
|
|
||||||
float GalileoE5aNoncoherentIQAcquisitionCaf::calculate_threshold(float pfa)
|
float GalileoE5aNoncoherentIQAcquisitionCaf::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,6 @@ GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(ConfigurationInterface* con
|
|||||||
blocking_ = configuration_->property(role + ".blocking", true);
|
blocking_ = configuration_->property(role + ".blocking", true);
|
||||||
acq_parameters_.blocking = blocking_;
|
acq_parameters_.blocking = blocking_;
|
||||||
|
|
||||||
|
|
||||||
acq_parameters_.use_automatic_resampler = configuration_->property("GNSS-SDR.use_acquisition_resampler", false);
|
acq_parameters_.use_automatic_resampler = configuration_->property("GNSS-SDR.use_acquisition_resampler", false);
|
||||||
if (acq_parameters_.use_automatic_resampler == true and item_type_ != "gr_complex")
|
if (acq_parameters_.use_automatic_resampler == true and item_type_ != "gr_complex")
|
||||||
{
|
{
|
||||||
@ -351,6 +350,7 @@ gr::basic_block_sptr GalileoE5aPcpsAcquisition::get_right_block()
|
|||||||
return acquisition_;
|
return acquisition_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE5aPcpsAcquisition::set_resampler_latency(uint32_t latency_samples)
|
void GalileoE5aPcpsAcquisition::set_resampler_latency(uint32_t latency_samples)
|
||||||
{
|
{
|
||||||
acquisition_->set_resampler_latency(latency_samples);
|
acquisition_->set_resampler_latency(latency_samples);
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include "galileo_e5_signal_processing.h"
|
#include "galileo_e5_signal_processing.h"
|
||||||
#include "gnss_sdr_flags.h"
|
#include "gnss_sdr_flags.h"
|
||||||
#include "gnss_synchro.h"
|
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <gnuradio/fft/fft.h> // for fft_complex
|
#include <gnuradio/fft/fft.h> // for fft_complex
|
||||||
#include <gnuradio/gr_complex.h> // for gr_complex
|
#include <gnuradio/gr_complex.h> // for gr_complex
|
||||||
@ -128,7 +127,7 @@ GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga(ConfigurationInterf
|
|||||||
signal_[1] = 'I';
|
signal_[1] = 'I';
|
||||||
}
|
}
|
||||||
|
|
||||||
galileo_e5_a_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.data(), nsamples_total), signal_, PRN, fs_in, 0);
|
galileo_e5_a_code_gen_complex_sampled(code, signal_, PRN, fs_in, 0);
|
||||||
|
|
||||||
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
||||||
{
|
{
|
||||||
@ -216,6 +215,7 @@ void GalileoE5aPcpsAcquisitionFpga::set_doppler_step(unsigned int doppler_step)
|
|||||||
acquisition_fpga_->set_doppler_step(doppler_step_);
|
acquisition_fpga_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE5aPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
void GalileoE5aPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -223,6 +223,7 @@ void GalileoE5aPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
|||||||
acquisition_fpga_->set_doppler_center(doppler_center_);
|
acquisition_fpga_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GalileoE5aPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GalileoE5aPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
|
@ -151,13 +151,12 @@ signed int GpsL1CaPcpsAcquisitionFineDoppler::mag()
|
|||||||
void GpsL1CaPcpsAcquisitionFineDoppler::init()
|
void GpsL1CaPcpsAcquisitionFineDoppler::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAcquisitionFineDoppler::set_local_code()
|
void GpsL1CaPcpsAcquisitionFineDoppler::set_local_code()
|
||||||
{
|
{
|
||||||
gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code_.data(), vector_length_), gnss_synchro_->PRN, fs_in_, 0);
|
gps_l1_ca_code_gen_complex_sampled(code_, gnss_synchro_->PRN, fs_in_, 0);
|
||||||
acquisition_cc_->set_local_code(code_.data());
|
acquisition_cc_->set_local_code(code_.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#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 "gnss_synchro.h"
|
|
||||||
#include "gps_sdr_signal_processing.h"
|
#include "gps_sdr_signal_processing.h"
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <gnuradio/fft/fft.h>
|
#include <gnuradio/fft/fft.h>
|
||||||
@ -103,7 +102,7 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
|
|||||||
// temporary maxima search
|
// temporary maxima search
|
||||||
for (uint32_t PRN = 1; PRN <= NUM_PRNs; PRN++)
|
for (uint32_t PRN = 1; PRN <= NUM_PRNs; PRN++)
|
||||||
{
|
{
|
||||||
gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.data(), nsamples_total), PRN, fs_in, 0); // generate PRN code
|
gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code
|
||||||
|
|
||||||
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
||||||
{
|
{
|
||||||
@ -192,6 +191,7 @@ void GpsL1CaPcpsAcquisitionFpga::set_doppler_step(unsigned int doppler_step)
|
|||||||
acquisition_fpga_->set_doppler_step(doppler_step_);
|
acquisition_fpga_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
void GpsL1CaPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -199,6 +199,7 @@ void GpsL1CaPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
|||||||
acquisition_fpga_->set_doppler_center(doppler_center_);
|
acquisition_fpga_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GpsL1CaPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "channel_fsm.h"
|
#include "channel_fsm.h"
|
||||||
|
#include "gnss_synchro.h"
|
||||||
#include "pcps_acquisition_fpga.h"
|
#include "pcps_acquisition_fpga.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -143,15 +143,16 @@ signed int GpsL1CaPcpsAssistedAcquisition::mag()
|
|||||||
void GpsL1CaPcpsAssistedAcquisition::init()
|
void GpsL1CaPcpsAssistedAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAssistedAcquisition::set_local_code()
|
void GpsL1CaPcpsAssistedAcquisition::set_local_code()
|
||||||
{
|
{
|
||||||
gps_l1_ca_code_gen_complex_sampled(gsl::span<gr_complex>(code_.get(), vector_length_), gnss_synchro_->PRN, fs_in_, 0);
|
gps_l1_ca_code_gen_complex_sampled(code_, gnss_synchro_->PRN, fs_in_, 0);
|
||||||
acquisition_cc_->set_local_code(code_.get());
|
acquisition_cc_->set_local_code(code_.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL1CaPcpsAssistedAcquisition::reset()
|
void GpsL1CaPcpsAssistedAcquisition::reset()
|
||||||
{
|
{
|
||||||
acquisition_cc_->set_active(true);
|
acquisition_cc_->set_active(true);
|
||||||
|
@ -198,7 +198,6 @@ signed int GpsL1CaPcpsOpenClAcquisition::mag()
|
|||||||
void GpsL1CaPcpsOpenClAcquisition::init()
|
void GpsL1CaPcpsOpenClAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -232,8 +231,7 @@ void GpsL1CaPcpsOpenClAcquisition::reset()
|
|||||||
|
|
||||||
float GpsL1CaPcpsOpenClAcquisition::calculate_threshold(float pfa)
|
float GpsL1CaPcpsOpenClAcquisition::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
|
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -68,7 +68,7 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
|
|||||||
//--- Find number of samples per spreading code -------------------------
|
//--- Find number of samples per spreading code -------------------------
|
||||||
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
|
||||||
|
|
||||||
/*Calculate the folding factor value based on the calculations*/
|
/* Calculate the folding factor value based on the calculations */
|
||||||
auto temp = static_cast<unsigned int>(ceil(sqrt(log2(code_length_))));
|
auto temp = static_cast<unsigned int>(ceil(sqrt(log2(code_length_))));
|
||||||
folding_factor_ = configuration_->property(role + ".folding_factor", temp);
|
folding_factor_ = configuration_->property(role + ".folding_factor", temp);
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
|
|||||||
|
|
||||||
int samples_per_ms = round(code_length_);
|
int samples_per_ms = round(code_length_);
|
||||||
code_ = std::vector<std::complex<float>>(code_length_);
|
code_ = std::vector<std::complex<float>>(code_length_);
|
||||||
/*Object relevant information for debugging*/
|
/* Object relevant information for debugging */
|
||||||
LOG(INFO) << "Implementation: " << this->implementation()
|
LOG(INFO) << "Implementation: " << this->implementation()
|
||||||
<< ", Vector Length: " << vector_length_
|
<< ", Vector Length: " << vector_length_
|
||||||
<< ", Samples per ms: " << samples_per_ms
|
<< ", Samples per ms: " << samples_per_ms
|
||||||
@ -224,7 +224,6 @@ signed int GpsL1CaPcpsQuickSyncAcquisition::mag()
|
|||||||
void GpsL1CaPcpsQuickSyncAcquisition::init()
|
void GpsL1CaPcpsQuickSyncAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -267,7 +266,7 @@ void GpsL1CaPcpsQuickSyncAcquisition::set_state(int state)
|
|||||||
|
|
||||||
float GpsL1CaPcpsQuickSyncAcquisition::calculate_threshold(float pfa)
|
float GpsL1CaPcpsQuickSyncAcquisition::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -186,7 +186,6 @@ signed int GpsL1CaPcpsTongAcquisition::mag()
|
|||||||
void GpsL1CaPcpsTongAcquisition::init()
|
void GpsL1CaPcpsTongAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_cc_->init();
|
acquisition_cc_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -229,7 +228,7 @@ void GpsL1CaPcpsTongAcquisition::set_state(int state)
|
|||||||
|
|
||||||
float GpsL1CaPcpsTongAcquisition::calculate_threshold(float pfa)
|
float GpsL1CaPcpsTongAcquisition::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
|
* Copyright (C) 2010-2019 (see AUTHORS file for a list of contributors)
|
||||||
*
|
*
|
||||||
* GNSS-SDR is a software defined Global Navigation
|
* GNSS-SDR is a software defined Global Navigation
|
||||||
* Satellite Systems receiver
|
* Satellite Systems receiver
|
||||||
@ -211,6 +211,7 @@ void GpsL2MPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
|
|||||||
acquisition_->set_doppler_step(doppler_step_);
|
acquisition_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL2MPcpsAcquisition::set_doppler_center(int doppler_center)
|
void GpsL2MPcpsAcquisition::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -218,6 +219,7 @@ void GpsL2MPcpsAcquisition::set_doppler_center(int doppler_center)
|
|||||||
acquisition_->set_doppler_center(doppler_center_);
|
acquisition_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL2MPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GpsL2MPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
@ -235,7 +237,6 @@ signed int GpsL2MPcpsAcquisition::mag()
|
|||||||
void GpsL2MPcpsAcquisition::init()
|
void GpsL2MPcpsAcquisition::init()
|
||||||
{
|
{
|
||||||
acquisition_->init();
|
acquisition_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -276,7 +277,7 @@ void GpsL2MPcpsAcquisition::set_state(int state)
|
|||||||
|
|
||||||
float GpsL2MPcpsAcquisition::calculate_threshold(float pfa)
|
float GpsL2MPcpsAcquisition::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +105,7 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga(
|
|||||||
|
|
||||||
for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++)
|
for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++)
|
||||||
{
|
{
|
||||||
gps_l2c_m_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.data(), nsamples_total), PRN, fs_in_);
|
gps_l2c_m_code_gen_complex_sampled(code, PRN, fs_in_);
|
||||||
// fill in zero padding
|
// fill in zero padding
|
||||||
for (unsigned int s = code_length; s < nsamples_total; s++)
|
for (unsigned int s = code_length; s < nsamples_total; s++)
|
||||||
{
|
{
|
||||||
@ -204,7 +204,6 @@ signed int GpsL2MPcpsAcquisitionFpga::mag()
|
|||||||
void GpsL2MPcpsAcquisitionFpga::init()
|
void GpsL2MPcpsAcquisitionFpga::init()
|
||||||
{
|
{
|
||||||
acquisition_fpga_->init();
|
acquisition_fpga_->init();
|
||||||
//set_local_code();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -206,6 +206,7 @@ void GpsL5iPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
|
|||||||
acquisition_->set_doppler_step(doppler_step_);
|
acquisition_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL5iPcpsAcquisition::set_doppler_center(int doppler_center)
|
void GpsL5iPcpsAcquisition::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -213,6 +214,7 @@ void GpsL5iPcpsAcquisition::set_doppler_center(int doppler_center)
|
|||||||
acquisition_->set_doppler_center(doppler_center_);
|
acquisition_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL5iPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GpsL5iPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
@ -270,7 +272,7 @@ void GpsL5iPcpsAcquisition::set_state(int state)
|
|||||||
|
|
||||||
float GpsL5iPcpsAcquisition::calculate_threshold(float pfa)
|
float GpsL5iPcpsAcquisition::calculate_threshold(float pfa)
|
||||||
{
|
{
|
||||||
//Calculate the threshold
|
// Calculate the threshold
|
||||||
unsigned int frequency_bins = 0;
|
unsigned int frequency_bins = 0;
|
||||||
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#include "GPS_L5.h"
|
#include "GPS_L5.h"
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include "gnss_sdr_flags.h"
|
#include "gnss_sdr_flags.h"
|
||||||
#include "gnss_synchro.h"
|
|
||||||
#include "gps_l5_signal.h"
|
#include "gps_l5_signal.h"
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
#include <gnuradio/fft/fft.h> // for fft_complex
|
#include <gnuradio/fft/fft.h> // for fft_complex
|
||||||
@ -107,7 +106,7 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
|
|||||||
|
|
||||||
for (uint32_t PRN = 1; PRN <= NUM_PRNs; PRN++)
|
for (uint32_t PRN = 1; PRN <= NUM_PRNs; PRN++)
|
||||||
{
|
{
|
||||||
gps_l5i_code_gen_complex_sampled(gsl::span<gr_complex>(code.data(), nsamples_total), PRN, fs_in);
|
gps_l5i_code_gen_complex_sampled(code, PRN, fs_in);
|
||||||
|
|
||||||
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
for (uint32_t s = code_length; s < 2 * code_length; s++)
|
||||||
{
|
{
|
||||||
@ -196,6 +195,7 @@ void GpsL5iPcpsAcquisitionFpga::set_doppler_step(unsigned int doppler_step)
|
|||||||
acquisition_fpga_->set_doppler_step(doppler_step_);
|
acquisition_fpga_->set_doppler_step(doppler_step_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL5iPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
void GpsL5iPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
||||||
{
|
{
|
||||||
doppler_center_ = doppler_center;
|
doppler_center_ = doppler_center;
|
||||||
@ -203,6 +203,7 @@ void GpsL5iPcpsAcquisitionFpga::set_doppler_center(int doppler_center)
|
|||||||
acquisition_fpga_->set_doppler_center(doppler_center_);
|
acquisition_fpga_->set_doppler_center(doppler_center_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL5iPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
void GpsL5iPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
|
||||||
{
|
{
|
||||||
gnss_synchro_ = gnss_synchro;
|
gnss_synchro_ = gnss_synchro;
|
||||||
@ -221,6 +222,7 @@ void GpsL5iPcpsAcquisitionFpga::init()
|
|||||||
acquisition_fpga_->init();
|
acquisition_fpga_->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GpsL5iPcpsAcquisitionFpga::set_local_code()
|
void GpsL5iPcpsAcquisitionFpga::set_local_code()
|
||||||
{
|
{
|
||||||
acquisition_fpga_->set_local_code();
|
acquisition_fpga_->set_local_code();
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#define GNSS_SDR_GPS_L5I_PCPS_ACQUISITION_FPGA_H_
|
#define GNSS_SDR_GPS_L5I_PCPS_ACQUISITION_FPGA_H_
|
||||||
|
|
||||||
#include "channel_fsm.h"
|
#include "channel_fsm.h"
|
||||||
|
#include "gnss_synchro.h"
|
||||||
#include "pcps_acquisition_fpga.h"
|
#include "pcps_acquisition_fpga.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
Loading…
Reference in New Issue
Block a user