1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-07-04 11:02:57 +00:00

Make lighter comparisons

This commit is contained in:
Carles Fernandez 2025-02-08 09:03:52 +01:00
parent 11a77ee918
commit 8e4dcd08be
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
5 changed files with 16 additions and 26 deletions

View File

@ -40,7 +40,6 @@
#include <cstddef> #include <cstddef>
#include <exception> #include <exception>
#include <iostream> #include <iostream>
#include <limits>
#include <memory> #include <memory>
#include <sstream> #include <sstream>
#include <utility> #include <utility>
@ -874,7 +873,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands // PLL commands
auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S); auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }
@ -884,7 +883,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
} }
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S); aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }

View File

@ -38,7 +38,6 @@
#include <cstddef> #include <cstddef>
#include <exception> #include <exception>
#include <iostream> #include <iostream>
#include <limits>
#include <memory> #include <memory>
#include <sstream> #include <sstream>
#include <utility> #include <utility>
@ -876,7 +875,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands // PLL commands
auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S); auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }
@ -886,7 +885,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
} }
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S); aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }

View File

@ -37,7 +37,6 @@
#include <cstddef> #include <cstddef>
#include <exception> #include <exception>
#include <iostream> #include <iostream>
#include <limits>
#include <memory> #include <memory>
#include <sstream> #include <sstream>
#include <utility> #include <utility>
@ -869,7 +868,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands // PLL commands
auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S); auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }
@ -879,7 +878,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
} }
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S); aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }

View File

@ -36,7 +36,6 @@
#include <cstddef> #include <cstddef>
#include <exception> #include <exception>
#include <iostream> #include <iostream>
#include <limits>
#include <memory> #include <memory>
#include <sstream> #include <sstream>
#include <utility> #include <utility>
@ -873,7 +872,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands // PLL commands
auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S); auto aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }
@ -883,7 +882,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
} }
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float)); d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S); aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon()) if (aux != 0.0)
{ {
tmp_float = 1.0 / aux; tmp_float = 1.0 / aux;
} }

View File

@ -34,7 +34,6 @@
#include "lock_detectors.h" #include "lock_detectors.h"
#include <cmath> #include <cmath>
#include <limits>
/* /*
* Signal-to-Noise (SNR) (\f$\rho\f$) estimator using the Signal-to-Noise Variance (SNV) estimator: * Signal-to-Noise (SNR) (\f$\rho\f$) estimator using the Signal-to-Noise Variance (SNV) estimator:
@ -58,8 +57,7 @@ float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, float coh_i
float SNR_dB_Hz = 0.0; float SNR_dB_Hz = 0.0;
float Psig = 0.0; float Psig = 0.0;
float Ptot = 0.0; float Ptot = 0.0;
const float epsilon = std::numeric_limits<float>::epsilon(); if (length == 0 || coh_integration_time_s == 0.0)
if (length == 0 || coh_integration_time_s < epsilon)
{ {
return -100.0; return -100.0;
} }
@ -72,14 +70,11 @@ float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, float coh_i
Psig = Psig * Psig; Psig = Psig * Psig;
Ptot /= static_cast<float>(length); Ptot /= static_cast<float>(length);
float aux = Ptot - Psig; float aux = Ptot - Psig;
if (aux > epsilon) if (aux == 0.0)
{
SNR = Psig / aux;
}
else
{ {
return -100.0; return -100.0;
} }
SNR = Psig / aux;
SNR_dB_Hz = 10.0F * std::log10(SNR) - 10.0F * std::log10(coh_integration_time_s); SNR_dB_Hz = 10.0F * std::log10(SNR) - 10.0F * std::log10(coh_integration_time_s);
return SNR_dB_Hz; return SNR_dB_Hz;
} }
@ -110,8 +105,7 @@ float cn0_m2m4_estimator(const gr_complex* Prompt_buffer, int length, float coh_
float m_4 = 0.0; float m_4 = 0.0;
float aux; float aux;
const auto n = static_cast<float>(length); const auto n = static_cast<float>(length);
const float epsilon = std::numeric_limits<float>::epsilon(); if (length == 0 || coh_integration_time_s == 0.0)
if (length == 0 || coh_integration_time_s <= epsilon)
{ {
return -100.0; return -100.0;
} }
@ -131,7 +125,7 @@ float cn0_m2m4_estimator(const gr_complex* Prompt_buffer, int length, float coh_
if (std::isnan(aux)) if (std::isnan(aux))
{ {
denominator = m_2 - Psig; denominator = m_2 - Psig;
if (std::fabs(denominator) < epsilon) if (denominator == 0)
{ {
return -100.0; return -100.0;
} }
@ -140,14 +134,14 @@ float cn0_m2m4_estimator(const gr_complex* Prompt_buffer, int length, float coh_
else else
{ {
denominator = m_2 - aux; denominator = m_2 - aux;
if (std::fabs(denominator) < epsilon) if (denominator == 0)
{ {
return -100.0; return -100.0;
} }
SNR_aux = aux / denominator; SNR_aux = aux / denominator;
} }
if (std::fabs(SNR_aux) < epsilon) if (SNR_aux == 0)
{ {
return -100.0; return -100.0;
} }
@ -179,7 +173,7 @@ float carrier_lock_detector(const gr_complex* Prompt_buffer, int length)
} }
NBP = tmp_sum_I * tmp_sum_I + tmp_sum_Q * tmp_sum_Q; NBP = tmp_sum_I * tmp_sum_I + tmp_sum_Q * tmp_sum_Q;
NBD = tmp_sum_I * tmp_sum_I - tmp_sum_Q * tmp_sum_Q; NBD = tmp_sum_I * tmp_sum_I - tmp_sum_Q * tmp_sum_Q;
if (NBP < std::numeric_limits<float>::epsilon()) if (NBP == 0)
{ {
return 0.0; return 0.0;
} }