mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-11-04 17:16:26 +00:00
updated the tracking pull-in test for the FPGA. To be tested.
This commit is contained in:
parent
41faa311f7
commit
0d9b08df70
@ -496,12 +496,14 @@ void GalileoE1PcpsAmbiguousAcquisitionFpga::set_single_doppler_flag(unsigned int
|
|||||||
}
|
}
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GalileoE1PcpsAmbiguousAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
void GalileoE1PcpsAmbiguousAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index)
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor)
|
||||||
|
|
||||||
{
|
{
|
||||||
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude,
|
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude, second_magnitude,
|
||||||
initial_sample, power_sum, doppler_index);
|
initial_sample, doppler_index, total_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GalileoE1PcpsAmbiguousAcquisitionFpga::reset_acquisition(void)
|
void GalileoE1PcpsAmbiguousAcquisitionFpga::reset_acquisition(void)
|
||||||
{
|
{
|
||||||
|
@ -144,7 +144,8 @@ public:
|
|||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
*/
|
*/
|
||||||
void read_acquisition_results(uint32_t *max_index,
|
void read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index);
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
|
@ -380,10 +380,11 @@ void GalileoE5aPcpsAcquisitionFpga::set_single_doppler_flag(unsigned int single_
|
|||||||
}
|
}
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GalileoE5aPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
void GalileoE5aPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index)
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor)
|
||||||
|
|
||||||
{
|
{
|
||||||
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude,
|
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude, second_magnitude,
|
||||||
initial_sample, power_sum, doppler_index);
|
initial_sample, doppler_index, total_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
|
@ -132,7 +132,8 @@ public:
|
|||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
*/
|
*/
|
||||||
void read_acquisition_results(uint32_t *max_index,
|
void read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index);
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
|
@ -283,10 +283,11 @@ void GpsL1CaPcpsAcquisitionFpga::set_single_doppler_flag(unsigned int single_dop
|
|||||||
}
|
}
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GpsL1CaPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
void GpsL1CaPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index)
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor)
|
||||||
|
|
||||||
{
|
{
|
||||||
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude,
|
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude, second_magnitude,
|
||||||
initial_sample, power_sum, doppler_index);
|
initial_sample, doppler_index, total_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
|
@ -142,7 +142,7 @@ public:
|
|||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
*/
|
*/
|
||||||
void read_acquisition_results(uint32_t *max_index,
|
void read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index);
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
|
@ -351,12 +351,15 @@ void GpsL5iPcpsAcquisitionFpga::set_single_doppler_flag(unsigned int single_dopp
|
|||||||
}
|
}
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GpsL5iPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
void GpsL5iPcpsAcquisitionFpga::read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index)
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor)
|
||||||
|
|
||||||
{
|
{
|
||||||
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude,
|
acquisition_fpga_->read_acquisition_results(max_index, max_magnitude, second_magnitude,
|
||||||
initial_sample, power_sum, doppler_index);
|
initial_sample, doppler_index, total_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void GpsL5iPcpsAcquisitionFpga::reset_acquisition(void)
|
void GpsL5iPcpsAcquisitionFpga::reset_acquisition(void)
|
||||||
{
|
{
|
||||||
|
@ -142,7 +142,8 @@ public:
|
|||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
*/
|
*/
|
||||||
void read_acquisition_results(uint32_t *max_index,
|
void read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index);
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This function is only used in the unit tests
|
* \brief This function is only used in the unit tests
|
||||||
|
@ -461,8 +461,12 @@ void pcps_acquisition_fpga::set_single_doppler_flag(unsigned int single_doppler_
|
|||||||
|
|
||||||
// this function is only used for the unit tests
|
// this function is only used for the unit tests
|
||||||
void pcps_acquisition_fpga::read_acquisition_results(uint32_t *max_index,
|
void pcps_acquisition_fpga::read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index)
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor)
|
||||||
{
|
{
|
||||||
|
float input_power; // not used
|
||||||
|
acquisition_fpga->read_acquisition_results(max_index, max_magnitude, second_magnitude, initial_sample, &input_power, doppler_index, total_fft_scaling_factor);
|
||||||
|
|
||||||
|
|
||||||
// acquisition_fpga->read_acquisition_results(max_index, max_magnitude,
|
// acquisition_fpga->read_acquisition_results(max_index, max_magnitude,
|
||||||
// initial_sample, power_sum, doppler_index);
|
// initial_sample, power_sum, doppler_index);
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,8 @@ public:
|
|||||||
* \brief This funciton is only used for the unit tests
|
* \brief This funciton is only used for the unit tests
|
||||||
*/
|
*/
|
||||||
void read_acquisition_results(uint32_t *max_index,
|
void read_acquisition_results(uint32_t *max_index,
|
||||||
float *max_magnitude, uint64_t *initial_sample, float *power_sum, uint32_t *doppler_index);
|
float *max_magnitude, float *second_magnitude, uint64_t *initial_sample, uint32_t *doppler_index, uint32_t *total_fft_scaling_factor);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This funciton is only used for the unit tests
|
* \brief This funciton is only used for the unit tests
|
||||||
|
@ -1051,19 +1051,23 @@ bool HybridObservablesTestFpga::acquire_signal()
|
|||||||
|
|
||||||
if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0)
|
if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsL1Ca_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
// UPDATE!
|
||||||
|
//acquisition_GpsL1Ca_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E1_DLL_PLL_VEML_Tracking_Fpga") == 0)
|
else if (implementation.compare("Galileo_E1_DLL_PLL_VEML_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsE1_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
// UPDATE!
|
||||||
|
//acquisition_GpsE1_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E5a_DLL_PLL_Tracking_Fpga") == 0)
|
else if (implementation.compare("Galileo_E5a_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsE5a_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
// UPDATE!
|
||||||
|
//acquisition_GpsE5a_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GPS_L5_DLL_PLL_Tracking_Fpga") == 0)
|
else if (implementation.compare("GPS_L5_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsL5_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
// UPDATE!
|
||||||
|
//acquisition_GpsL5_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
||||||
}
|
}
|
||||||
|
|
||||||
result_table[PRN][doppler_num][0] = max_magnitude_iteration;
|
result_table[PRN][doppler_num][0] = max_magnitude_iteration;
|
||||||
|
@ -1041,27 +1041,30 @@ bool TrackingPullInTestFpga::acquire_signal(int SV_ID)
|
|||||||
|
|
||||||
int num_doppler_steps = (2*acq_doppler_max)/acq_doppler_step + 1;
|
int num_doppler_steps = (2*acq_doppler_max)/acq_doppler_step + 1;
|
||||||
|
|
||||||
float result_table[MAX_PRN_IDX][num_doppler_steps][4];
|
float result_table[MAX_PRN_IDX][num_doppler_steps][3];
|
||||||
|
|
||||||
for (unsigned int PRN = 1; PRN < MAX_PRN_IDX; PRN++)
|
for (unsigned int PRN = 1; PRN < MAX_PRN_IDX; PRN++)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint32_t max_index = 0;
|
uint32_t max_index = 0;
|
||||||
float max_magnitude = 0.0;
|
float max_magnitude = 0.0;
|
||||||
|
float second_magnitude = 0.0;
|
||||||
uint64_t initial_sample = 0;
|
uint64_t initial_sample = 0;
|
||||||
float power_sum = 0;
|
//float power_sum = 0;
|
||||||
uint32_t doppler_index = 0;
|
uint32_t doppler_index = 0;
|
||||||
|
|
||||||
uint32_t max_index_iteration;
|
uint32_t max_index_iteration;
|
||||||
uint32_t total_fft_scaling_factor;
|
uint32_t total_fft_scaling_factor;
|
||||||
uint32_t fw_fft_scaling_factor;
|
uint32_t fw_fft_scaling_factor;
|
||||||
float max_magnitude_iteration;
|
float max_magnitude_iteration;
|
||||||
|
float second_magnitude_iteration;
|
||||||
uint64_t initial_sample_iteration;
|
uint64_t initial_sample_iteration;
|
||||||
float power_sum_iteration;
|
//float power_sum_iteration;
|
||||||
uint32_t doppler_index_iteration;
|
uint32_t doppler_index_iteration;
|
||||||
int doppler_shift_selected;
|
int doppler_shift_selected;
|
||||||
int doppler_num = 0;
|
int doppler_num = 0;
|
||||||
|
|
||||||
|
|
||||||
for (int doppler_shift = -acq_doppler_max;doppler_shift <= acq_doppler_max;doppler_shift = doppler_shift + acq_doppler_step)
|
for (int doppler_shift = -acq_doppler_max;doppler_shift <= acq_doppler_max;doppler_shift = doppler_shift + acq_doppler_step)
|
||||||
{
|
{
|
||||||
tmp_gnss_synchro.PRN = PRN;
|
tmp_gnss_synchro.PRN = PRN;
|
||||||
@ -1181,45 +1184,45 @@ bool TrackingPullInTestFpga::acquire_signal(int SV_ID)
|
|||||||
|
|
||||||
if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0)
|
if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsL1Ca_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
acquisition_GpsL1Ca_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration, &second_magnitude_iteration, &initial_sample_iteration, &doppler_index_iteration, &total_fft_scaling_factor);
|
||||||
acquisition_GpsL1Ca_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
//acquisition_GpsL1Ca_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E1_DLL_PLL_VEML_Tracking_Fpga") == 0)
|
else if (implementation.compare("Galileo_E1_DLL_PLL_VEML_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsE1_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
acquisition_GpsE1_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration, &second_magnitude_iteration, &initial_sample_iteration, &doppler_index_iteration, &total_fft_scaling_factor);
|
||||||
acquisition_GpsE1_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
//acquisition_GpsE1_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("Galileo_E5a_DLL_PLL_Tracking_Fpga") == 0)
|
else if (implementation.compare("Galileo_E5a_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsE5a_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
acquisition_GpsE5a_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration, &second_magnitude_iteration, &initial_sample_iteration, &doppler_index_iteration, &total_fft_scaling_factor);
|
||||||
acquisition_GpsE5a_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
//acquisition_GpsE5a_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
else if (implementation.compare("GPS_L5_DLL_PLL_Tracking_Fpga") == 0)
|
else if (implementation.compare("GPS_L5_DLL_PLL_Tracking_Fpga") == 0)
|
||||||
{
|
{
|
||||||
acquisition_GpsL5_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration,&initial_sample_iteration, &power_sum_iteration, &doppler_index_iteration);
|
acquisition_GpsL5_Fpga->read_acquisition_results(&max_index_iteration, &max_magnitude_iteration, &second_magnitude_iteration, &initial_sample_iteration, &doppler_index_iteration, &total_fft_scaling_factor);
|
||||||
acquisition_GpsL5_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
//acquisition_GpsL5_Fpga->read_fpga_total_scale_factor(&total_fft_scaling_factor, &fw_fft_scaling_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
result_table[PRN][doppler_num][0] = max_magnitude_iteration;
|
result_table[PRN][doppler_num][0] = max_magnitude_iteration;
|
||||||
result_table[PRN][doppler_num][1] = power_sum_iteration;
|
result_table[PRN][doppler_num][1] = second_magnitude_iteration;
|
||||||
result_table[PRN][doppler_num][2] = total_fft_scaling_factor;
|
result_table[PRN][doppler_num][2] = total_fft_scaling_factor;
|
||||||
result_table[PRN][doppler_num][3] = fw_fft_scaling_factor;
|
|
||||||
doppler_num = doppler_num + 1;
|
doppler_num = doppler_num + 1;
|
||||||
|
|
||||||
if (max_magnitude_iteration > max_magnitude)
|
if (max_magnitude_iteration > max_magnitude)
|
||||||
{
|
{
|
||||||
max_index = max_index_iteration;
|
max_index = max_index_iteration;
|
||||||
max_magnitude = max_magnitude_iteration;
|
max_magnitude = max_magnitude_iteration;
|
||||||
|
second_magnitude = second_magnitude_iteration;
|
||||||
initial_sample = initial_sample_iteration;
|
initial_sample = initial_sample_iteration;
|
||||||
power_sum = power_sum_iteration;
|
|
||||||
doppler_index = doppler_index_iteration;
|
doppler_index = doppler_index_iteration;
|
||||||
doppler_shift_selected = doppler_shift;
|
doppler_shift_selected = doppler_shift;
|
||||||
}
|
}
|
||||||
top_block->stop();
|
top_block->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
power_sum = (power_sum - max_magnitude) / (fft_size - 1);
|
//power_sum = (power_sum - max_magnitude) / (fft_size - 1);
|
||||||
float test_statistics = (max_magnitude / power_sum);
|
//float test_statistics = (max_magnitude / power_sum);
|
||||||
|
float test_statistics = max_magnitude/second_magnitude;
|
||||||
float threshold = config->property("Acquisition.threshold", FLAGS_external_signal_acquisition_threshold);
|
float threshold = config->property("Acquisition.threshold", FLAGS_external_signal_acquisition_threshold);
|
||||||
if (test_statistics > threshold)
|
if (test_statistics > threshold)
|
||||||
{
|
{
|
||||||
@ -1239,10 +1242,10 @@ bool TrackingPullInTestFpga::acquire_signal(int SV_ID)
|
|||||||
|
|
||||||
uint32_t max_index = 0;
|
uint32_t max_index = 0;
|
||||||
uint32_t total_fft_scaling_factor;
|
uint32_t total_fft_scaling_factor;
|
||||||
uint32_t fw_fft_scaling_factor;
|
//uint32_t fw_fft_scaling_factor;
|
||||||
float max_magnitude = 0.0;
|
float max_magnitude = 0.0;
|
||||||
uint64_t initial_sample = 0;
|
uint64_t initial_sample = 0;
|
||||||
float power_sum = 0;
|
float second_magnitude = 0;
|
||||||
float peak_to_power = 0;
|
float peak_to_power = 0;
|
||||||
float test_statistics;
|
float test_statistics;
|
||||||
uint32_t doppler_index = 0;
|
uint32_t doppler_index = 0;
|
||||||
@ -1256,18 +1259,19 @@ bool TrackingPullInTestFpga::acquire_signal(int SV_ID)
|
|||||||
for (int doppler_shift = -acq_doppler_max;doppler_shift <= acq_doppler_max;doppler_shift = doppler_shift + acq_doppler_step)
|
for (int doppler_shift = -acq_doppler_max;doppler_shift <= acq_doppler_max;doppler_shift = doppler_shift + acq_doppler_step)
|
||||||
{
|
{
|
||||||
max_magnitude = result_table[PRN][doppler_num][0];
|
max_magnitude = result_table[PRN][doppler_num][0];
|
||||||
power_sum = result_table[PRN][doppler_num][1];
|
second_magnitude = result_table[PRN][doppler_num][1];
|
||||||
total_fft_scaling_factor = result_table[PRN][doppler_num][2];
|
total_fft_scaling_factor = result_table[PRN][doppler_num][2];
|
||||||
fw_fft_scaling_factor = result_table[PRN][doppler_num][3];
|
//fw_fft_scaling_factor = result_table[PRN][doppler_num][3];
|
||||||
doppler_num = doppler_num + 1;
|
doppler_num = doppler_num + 1;
|
||||||
|
|
||||||
std::cout << "==================== Doppler shift " << doppler_shift << std::endl;
|
std::cout << "==================== Doppler shift " << doppler_shift << std::endl;
|
||||||
std::cout << "Max magnitude = " << max_magnitude << "Power sum = " << power_sum << std::endl;
|
std::cout << "Max magnitude = " << max_magnitude << std::endl;
|
||||||
std::cout << "FFT total scaling factor = " << total_fft_scaling_factor << " FW FFT scaling factor = " << fw_fft_scaling_factor << std::endl;
|
std::cout << "Second magnitude = " << second_magnitude << std::endl;
|
||||||
peak_to_power = max_magnitude/power_sum;
|
std::cout << "FFT total scaling factor = " << total_fft_scaling_factor << std::endl;
|
||||||
power_sum = (power_sum - max_magnitude) / (fft_size - 1);
|
//peak_to_power = max_magnitude/power_sum;
|
||||||
test_statistics = (max_magnitude / power_sum);
|
//power_sum = (power_sum - max_magnitude) / (fft_size - 1);
|
||||||
std::cout << "peak to power = " << peak_to_power << " test_statistics = " << test_statistics << std::endl;
|
test_statistics = (max_magnitude / second_magnitude);
|
||||||
|
std::cout << " test_statistics = " << test_statistics << std::endl;
|
||||||
}
|
}
|
||||||
int dummy_val;
|
int dummy_val;
|
||||||
std::cout << "Enter a value to continue";
|
std::cout << "Enter a value to continue";
|
||||||
|
Loading…
Reference in New Issue
Block a user