mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-15 04:30:33 +00:00
Fix Acquisition for L2C and E1B
This commit is contained in:
parent
0ad24adeab
commit
9881857fa5
@ -59,24 +59,23 @@ GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
|
|||||||
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
|
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
|
||||||
acq_parameters.fs_in = fs_in_;
|
acq_parameters.fs_in = fs_in_;
|
||||||
acq_parameters.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / Galileo_E1_CODE_CHIP_RATE_HZ) * static_cast<float>(acq_parameters.fs_in)));
|
acq_parameters.samples_per_chip = static_cast<unsigned int>(ceil((1.0 / Galileo_E1_CODE_CHIP_RATE_HZ) * static_cast<float>(acq_parameters.fs_in)));
|
||||||
dump_ = configuration_->property(role + ".dump", false);
|
|
||||||
acq_parameters.dump = dump_;
|
|
||||||
acq_parameters.dump_channel = configuration_->property(role + ".dump_channel", 0);
|
|
||||||
blocking_ = configuration_->property(role + ".blocking", true);
|
|
||||||
acq_parameters.blocking = blocking_;
|
|
||||||
doppler_max_ = configuration_->property(role + ".doppler_max", 5000);
|
doppler_max_ = configuration_->property(role + ".doppler_max", 5000);
|
||||||
if (FLAGS_doppler_max != 0) doppler_max_ = FLAGS_doppler_max;
|
if (FLAGS_doppler_max != 0) doppler_max_ = FLAGS_doppler_max;
|
||||||
acq_parameters.doppler_max = doppler_max_;
|
acq_parameters.doppler_max = doppler_max_;
|
||||||
sampled_ms_ = 4;
|
sampled_ms_ = configuration_->property(role + ".coherent_integration_time_ms", 4);
|
||||||
acq_parameters.sampled_ms = sampled_ms_;
|
acq_parameters.sampled_ms = sampled_ms_;
|
||||||
bit_transition_flag_ = configuration_->property(role + ".bit_transition_flag", false);
|
bit_transition_flag_ = configuration_->property(role + ".bit_transition_flag", false);
|
||||||
acq_parameters.bit_transition_flag = bit_transition_flag_;
|
acq_parameters.bit_transition_flag = bit_transition_flag_;
|
||||||
use_CFAR_algorithm_flag_ = configuration_->property(role + ".use_CFAR_algorithm", true); //will be false in future versions
|
use_CFAR_algorithm_flag_ = configuration_->property(role + ".use_CFAR_algorithm", true); //will be false in future versions
|
||||||
acq_parameters.use_CFAR_algorithm_flag = use_CFAR_algorithm_flag_;
|
acq_parameters.use_CFAR_algorithm_flag = use_CFAR_algorithm_flag_;
|
||||||
acquire_pilot_ = configuration_->property(role + ".acquire_pilot", false); //will be true in future versions
|
acquire_pilot_ = configuration_->property(role + ".acquire_pilot", false); //will be true in future versions
|
||||||
|
|
||||||
max_dwells_ = configuration_->property(role + ".max_dwells", 1);
|
max_dwells_ = configuration_->property(role + ".max_dwells", 1);
|
||||||
acq_parameters.max_dwells = max_dwells_;
|
acq_parameters.max_dwells = max_dwells_;
|
||||||
|
dump_ = configuration_->property(role + ".dump", false);
|
||||||
|
acq_parameters.dump = dump_;
|
||||||
|
acq_parameters.dump_channel = configuration_->property(role + ".dump_channel", 0);
|
||||||
|
blocking_ = configuration_->property(role + ".blocking", true);
|
||||||
|
acq_parameters.blocking = blocking_;
|
||||||
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
|
||||||
acq_parameters.dump_filename = dump_filename_;
|
acq_parameters.dump_filename = dump_filename_;
|
||||||
//--- Find number of samples per spreading code (4 ms) -----------------
|
//--- Find number of samples per spreading code (4 ms) -----------------
|
||||||
|
@ -100,10 +100,10 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
|
|||||||
acq_parameters.samples_per_ms = static_cast<int>(std::round(static_cast<double>(fs_in_) * 0.001));
|
acq_parameters.samples_per_ms = static_cast<int>(std::round(static_cast<double>(fs_in_) * 0.001));
|
||||||
acq_parameters.samples_per_code = code_length_;
|
acq_parameters.samples_per_code = code_length_;
|
||||||
acq_parameters.it_size = item_size_;
|
acq_parameters.it_size = item_size_;
|
||||||
acq_parameters.sampled_ms = 20;
|
acq_parameters.sampled_ms = configuration_->property(role + ".coherent_integration_time_ms", 20);
|
||||||
acq_parameters.num_doppler_bins_step2 = configuration_->property(role + ".second_nbins", 4);
|
acq_parameters.num_doppler_bins_step2 = configuration_->property(role + ".second_nbins", 4);
|
||||||
acq_parameters.doppler_step2 = configuration_->property(role + ".second_doppler_step", 125.0);
|
acq_parameters.doppler_step2 = configuration_->property(role + ".second_doppler_step", 125.0);
|
||||||
acq_parameters.make_2_steps = configuration_->property(role + ".make_two_steps", true);
|
acq_parameters.make_2_steps = configuration_->property(role + ".make_two_steps", false);
|
||||||
acq_parameters.blocking_on_standby = configuration_->property(role + ".blocking_on_standby", false);
|
acq_parameters.blocking_on_standby = configuration_->property(role + ".blocking_on_standby", false);
|
||||||
acquisition_ = pcps_make_acquisition(acq_parameters);
|
acquisition_ = pcps_make_acquisition(acq_parameters);
|
||||||
DLOG(INFO) << "acquisition(" << acquisition_->unique_id() << ")";
|
DLOG(INFO) << "acquisition(" << acquisition_->unique_id() << ")";
|
||||||
|
@ -65,7 +65,7 @@ pcps_acquisition::pcps_acquisition(const Acq_Conf& conf_) : gr::block("pcps_acqu
|
|||||||
d_old_freq = 0;
|
d_old_freq = 0;
|
||||||
d_num_noncoherent_integrations_counter = 0;
|
d_num_noncoherent_integrations_counter = 0;
|
||||||
d_consumed_samples = acq_parameters.sampled_ms * acq_parameters.samples_per_ms * (acq_parameters.bit_transition_flag ? 2 : 1);
|
d_consumed_samples = acq_parameters.sampled_ms * acq_parameters.samples_per_ms * (acq_parameters.bit_transition_flag ? 2 : 1);
|
||||||
if (acq_parameters.sampled_ms == 1)
|
if (acq_parameters.sampled_ms == (acq_parameters.samples_per_code / acq_parameters.samples_per_ms)) //
|
||||||
{
|
{
|
||||||
d_fft_size = d_consumed_samples;
|
d_fft_size = d_consumed_samples;
|
||||||
}
|
}
|
||||||
@ -205,7 +205,7 @@ void pcps_acquisition::set_local_code(std::complex<float>* code)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (acq_parameters.sampled_ms == 1)
|
if (acq_parameters.sampled_ms == (acq_parameters.samples_per_code / acq_parameters.samples_per_ms))
|
||||||
{
|
{
|
||||||
memcpy(d_fft_if->get_inbuf(), code, sizeof(gr_complex) * d_consumed_samples);
|
memcpy(d_fft_if->get_inbuf(), code, sizeof(gr_complex) * d_consumed_samples);
|
||||||
}
|
}
|
||||||
|
@ -164,46 +164,69 @@ protected:
|
|||||||
{
|
{
|
||||||
signal_id = "1C";
|
signal_id = "1C";
|
||||||
system_id = 'G';
|
system_id = 'G';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GPS_L1_CA_PCPS_Acquisition_Fine_Doppler") == 0)
|
else if (implementation.compare("GPS_L1_CA_PCPS_Acquisition_Fine_Doppler") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "1C";
|
signal_id = "1C";
|
||||||
system_id = 'G';
|
system_id = 'G';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E1_PCPS_Ambiguous_Acquisition") == 0)
|
else if (implementation.compare("Galileo_E1_PCPS_Ambiguous_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "1B";
|
signal_id = "1B";
|
||||||
system_id = 'E';
|
system_id = 'E';
|
||||||
|
if (FLAGS_acq_test_coherent_time_ms == 1)
|
||||||
|
{
|
||||||
|
coherent_integration_time_ms = 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GLONASS_L1_CA_PCPS_Acquisition") == 0)
|
else if (implementation.compare("GLONASS_L1_CA_PCPS_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "1G";
|
signal_id = "1G";
|
||||||
system_id = 'R';
|
system_id = 'R';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GLONASS_L2_CA_PCPS_Acquisition") == 0)
|
else if (implementation.compare("GLONASS_L2_CA_PCPS_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "2G";
|
signal_id = "2G";
|
||||||
system_id = 'R';
|
system_id = 'R';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GPS_L2_M_PCPS_Acquisition") == 0)
|
else if (implementation.compare("GPS_L2_M_PCPS_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "2S";
|
signal_id = "2S";
|
||||||
system_id = 'G';
|
system_id = 'G';
|
||||||
|
if (FLAGS_acq_test_coherent_time_ms == 1)
|
||||||
|
{
|
||||||
|
coherent_integration_time_ms = 20;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E5a_Pcps_Acquisition") == 0)
|
else if (implementation.compare("Galileo_E5a_Pcps_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "5X";
|
signal_id = "5X";
|
||||||
system_id = 'E';
|
system_id = 'E';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GPS_L5i_PCPS_Acquisition") == 0)
|
else if (implementation.compare("GPS_L5i_PCPS_Acquisition") == 0)
|
||||||
{
|
{
|
||||||
signal_id = "L5";
|
signal_id = "L5";
|
||||||
system_id = 'G';
|
system_id = 'G';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
signal_id = "1C";
|
signal_id = "1C";
|
||||||
system_id = 'G';
|
system_id = 'G';
|
||||||
|
coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
@ -292,7 +315,7 @@ protected:
|
|||||||
std::string implementation = FLAGS_acq_test_implementation;
|
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;
|
int coherent_integration_time_ms;
|
||||||
const int in_acquisition = 1;
|
const int in_acquisition = 1;
|
||||||
const int dump_channel = 0;
|
const int dump_channel = 0;
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Acquisition_2S.doppler_step=125
|
|||||||
|
|
||||||
Acquisition_2S.use_CFAR_algorithm=false
|
Acquisition_2S.use_CFAR_algorithm=false
|
||||||
|
|
||||||
Acquisition_2S.threshold=19.5
|
Acquisition_2S.threshold=10
|
||||||
|
|
||||||
Acquisition_2S.blocking=true
|
Acquisition_2S.blocking=true
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user