summaryrefslogtreecommitdiff
path: root/gr-analog/lib/pll_carriertracking_cc_impl.cc
diff options
context:
space:
mode:
authorghostop14 <ghostop14@gmail.com>2020-02-14 11:47:37 -0500
committerMarcus Müller <marcus@hostalia.de>2020-02-15 14:25:57 +0100
commit504ab76d9e4fc3e9f497b9fd34f01c1bad346a5d (patch)
treec64edca089a87217e56d8840a38382d7e2b4ec56 /gr-analog/lib/pll_carriertracking_cc_impl.cc
parenta56c3a7f4908133dc6ceb93ffd3b2f9e1dda8e0e (diff)
gr-digital: Improve PLL Loops and Clock Recovery
These updates incorporate the same inlining of loop functions and the newly pushed fast_cc_multiply function to ensure consistent performance improvements across systems that do not support the cx-limited-range compiler parameter (Macs and Windows).
Diffstat (limited to 'gr-analog/lib/pll_carriertracking_cc_impl.cc')
-rw-r--r--gr-analog/lib/pll_carriertracking_cc_impl.cc27
1 files changed, 2 insertions, 25 deletions
diff --git a/gr-analog/lib/pll_carriertracking_cc_impl.cc b/gr-analog/lib/pll_carriertracking_cc_impl.cc
index 81c04aa01b..f403cf3528 100644
--- a/gr-analog/lib/pll_carriertracking_cc_impl.cc
+++ b/gr-analog/lib/pll_carriertracking_cc_impl.cc
@@ -14,7 +14,6 @@
#include "pll_carriertracking_cc_impl.h"
#include <gnuradio/io_signature.h>
-#include <gnuradio/math.h>
#include <gnuradio/sincos.h>
#include <cmath>
@@ -44,29 +43,6 @@ pll_carriertracking_cc_impl::pll_carriertracking_cc_impl(float loop_bw,
pll_carriertracking_cc_impl::~pll_carriertracking_cc_impl() {}
-float pll_carriertracking_cc_impl::mod_2pi(float in)
-{
- if (in > GR_M_PI)
- return in - (2.0 * GR_M_PI);
- else if (in < -GR_M_PI)
- return in + (2.0 * GR_M_PI);
- else
- return in;
-}
-
-float pll_carriertracking_cc_impl::phase_detector(gr_complex sample, float ref_phase)
-{
- float sample_phase;
- // sample_phase = atan2(sample.imag(),sample.real());
- sample_phase = gr::fast_atan2f(sample.imag(), sample.real());
- return mod_2pi(sample_phase - ref_phase);
-}
-
-bool pll_carriertracking_cc_impl::lock_detector(void)
-{
- return (fabsf(d_locksig) > d_lock_threshold);
-}
-
bool pll_carriertracking_cc_impl::squelch_enable(bool set_squelch)
{
return d_squelch_enable = set_squelch;
@@ -89,7 +65,8 @@ int pll_carriertracking_cc_impl::work(int noutput_items,
for (int i = 0; i < noutput_items; i++) {
gr::sincosf(d_phase, &t_imag, &t_real);
- optr[i] = iptr[i] * gr_complex(t_real, -t_imag);
+
+ fast_cc_multiply(optr[i], iptr[i], gr_complex(t_real, -t_imag));
error = phase_detector(iptr[i], d_phase);