switch source package format to 3.0 quilt
[debian/gnuradio] / gnuradio-core / src / lib / general / gr_pll_carriertracking_cc.cc
index 4736e77cf4a234d79c5f609f46ad703ff0eed498..5f0e9a6921290d14b16573a0d6e396e29cb7ef07 100644 (file)
@@ -6,7 +6,7 @@
  * 
  * GNU Radio is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
+ * the Free Software Foundation; either version 3, or (at your option)
  * any later version.
  * 
  * GNU Radio is distributed in the hope that it will be useful,
@@ -16,8 +16,8 @@
  * 
  * You should have received a copy of the GNU General Public License
  * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -28,6 +28,7 @@
 #include <gr_io_signature.h>
 #include <gr_sincos.h>
 #include <math.h>
+#include <gr_math.h>
 
 #define M_TWOPI (2*M_PI)
 
@@ -63,7 +64,8 @@ float
 gr_pll_carriertracking_cc::phase_detector(gr_complex sample,float ref_phase)
 {
   float sample_phase;
-  sample_phase = atan2(sample.imag(),sample.real());
+  //  sample_phase = atan2(sample.imag(),sample.real());
+  sample_phase = gr_fast_atan2f(sample.imag(),sample.real());
   return mod_2pi(sample_phase-ref_phase);
 }
 
@@ -107,7 +109,7 @@ gr_pll_carriertracking_cc::work (int noutput_items,
     else if (d_freq < d_min_freq)
       d_freq = d_min_freq;
     gr_sincosf(d_phase,&t_imag,&t_real);
-    optr[i] = gr_complex(t_real,t_imag);
+    optr[i] = iptr[i] * gr_complex(t_real,-t_imag);
     d_locksig = d_locksig * (1.0 - d_alpha) + d_alpha*(iptr[i].real() * t_real + iptr[i].imag() * t_imag);
     
     if ((d_squelch_enable) && !lock_detector())