aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/cores
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2021-08-31 11:49:51 +0200
committerAaron Rossetto <aaron.rossetto@ni.com>2021-10-19 12:21:33 -0700
commit5ee6b828debbd60e03aff805bfd80e2030715a6f (patch)
treeef3a02b0c2dd055988c376f4bbf1c8e71ea6a330 /host/lib/usrp/cores
parent91c10b66c23178e27bbff0e9173570c63e342736 (diff)
downloaduhd-5ee6b828debbd60e03aff805bfd80e2030715a6f.tar.gz
uhd-5ee6b828debbd60e03aff805bfd80e2030715a6f.tar.bz2
uhd-5ee6b828debbd60e03aff805bfd80e2030715a6f.zip
uhd: math: Replace wrap-frequency math with a single function
In multiple places in the UHD code, we were doing the same calculation for a wrapped frequency (wrap it into the first Nyquist zone). This math was using boost::math, too. Instead of editing every instance, we create a new function, uhd::math::wrap_frequency(), and replace all of its separate implementations with this function. The new function also no longer relies on boost::math::sign.
Diffstat (limited to 'host/lib/usrp/cores')
-rw-r--r--host/lib/usrp/cores/dsp_core_utils.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/host/lib/usrp/cores/dsp_core_utils.cpp b/host/lib/usrp/cores/dsp_core_utils.cpp
index 84331fcec..868e47234 100644
--- a/host/lib/usrp/cores/dsp_core_utils.cpp
+++ b/host/lib/usrp/cores/dsp_core_utils.cpp
@@ -8,7 +8,6 @@
#include <uhd/exception.hpp>
#include <uhd/utils/math.hpp>
#include <uhdlib/usrp/cores/dsp_core_utils.hpp>
-#include <boost/math/special_functions/sign.hpp>
#include <cmath>
#include <limits>
@@ -20,10 +19,7 @@ void get_freq_and_freq_word(const double requested_freq,
double& actual_freq,
int32_t& freq_word)
{
- // correct for outside of rate (wrap around)
- double freq = std::fmod(requested_freq, tick_rate);
- if (std::abs(freq) > tick_rate / 2.0)
- freq -= boost::math::sign(freq) * tick_rate;
+ const double freq = uhd::math::wrap_frequency(requested_freq, tick_rate);
// confirm that the target frequency is within range of the CORDIC
UHD_ASSERT_THROW(std::abs(freq) <= tick_rate / 2.0);