commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7388 - gnuradio/branches/developers/trondeau/receiver


From: trondeau
Subject: [Commit-gnuradio] r7388 - gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general
Date: Wed, 9 Jan 2008 15:55:58 -0700 (MST)

Author: trondeau
Date: 2008-01-09 15:55:57 -0700 (Wed, 09 Jan 2008)
New Revision: 7388

Modified:
   
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
   
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h
   
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_ff.cc
Log:
using branchless clipping in clock recovery blocks

Modified: 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
     2008-01-09 14:33:44 UTC (rev 7387)
+++ 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
     2008-01-09 22:55:57 UTC (rev 7388)
@@ -151,30 +151,14 @@
       out[oo++] = d_p_0T;
       
       // limit mm_val
-#if 0
-      if (mm_val > 1.0)
-       mm_val = 1.0;
-      else if (mm_val < -1.0)
-       mm_val = -1.0;
-#endif
       gr_branchless_clip(mm_val,1.0);
       d_omega = d_omega + d_gain_omega * mm_val;
 
-#if 0
-      if (d_omega > d_max_omega)
-       d_omega = d_max_omega;
-      else if (d_omega < d_min_omega)
-       d_omega = d_min_omega;
-#endif
-      d_omega = 1.0+gr_branchless_clip(d_omega,d_omega_relative_limit);
+      d_omega = d_omega_mid + gr_branchless_clip(d_omega-d_omega_mid, 
d_omega_relative_limit);   // make sure we don't walk away
       d_mu = d_mu + d_omega + d_gain_mu * mm_val;
       ii += (int)floor(d_mu);
       d_mu -= floor(d_mu);
-      
-      #if 0
-      printf("%f\t%f\n", d_omega, d_mu);
-      #endif
-      
+            
       // write the error signal to the second output
       foptr[oo-1] = gr_complex(d_mu,0);
       
@@ -200,16 +184,10 @@
       out[oo++] = d_p_0T;
       
       // limit mm_val
-      if (mm_val > 1.0)
-       mm_val = 1.0;
-      else if (mm_val < -1.0)
-       mm_val = -1.0;
+      gr_branchless_clip(mm_val,1.0);
       
       d_omega = d_omega + d_gain_omega * mm_val;
-      if (d_omega > d_max_omega)
-       d_omega = d_max_omega;
-      else if (d_omega < d_min_omega)
-       d_omega = d_min_omega;
+      d_omega = d_omega_mid + gr_branchless_clip(d_omega-d_omega_mid, 
d_omega_relative_limit);   // make sure we don't walk away
       
       d_mu = d_mu + d_omega + d_gain_mu * mm_val;
       ii += (int)floor(d_mu);

Modified: 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h
===================================================================
--- 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h
      2008-01-09 14:33:44 UTC (rev 7387)
+++ 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h
      2008-01-09 22:55:57 UTC (rev 7388)
@@ -70,6 +70,7 @@
     d_omega = omega;
     d_min_omega = omega*(1.0 - d_omega_relative_limit);
     d_max_omega = omega*(1.0 + d_omega_relative_limit);
+    d_omega_mid = 0.5*(d_min_omega+d_max_omega);
   }
 
 protected:
@@ -83,6 +84,7 @@
   float                                d_min_omega;            // minimum 
allowed omega
   float                                d_max_omega;            // maximum 
allowed omeg
   float                                d_omega_relative_limit; // used to 
compute min and max omega
+  float                         d_omega_mid;
   float                         d_gain_mu;
   gr_complex                    d_last_sample;
   gri_mmse_fir_interpolator_cc         *d_interp;

Modified: 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_ff.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_ff.cc
     2008-01-09 14:33:44 UTC (rev 7387)
+++ 
gnuradio/branches/developers/trondeau/receiver/gnuradio-core/src/lib/general/gr_clock_recovery_mm_ff.cc
     2008-01-09 22:55:57 UTC (rev 7388)
@@ -118,13 +118,7 @@
     d_last_sample = out[oo];
 
     d_omega = d_omega + d_gain_omega * mm_val;
-#if 0
-    if (d_omega > d_max_omega)
-      d_omega = d_max_omega;
-    else if (d_omega < d_min_omega)
-      d_omega = d_min_omega;
-#endif
-    d_omega = gr_branchless_clip(d_omega-d_omega_mid,d_omega_relative_limit);
+    d_omega = d_omega_mid + gr_branchless_clip(d_omega-d_omega_mid, 
d_omega_relative_limit);   // make sure we don't walk away
     d_mu = d_mu + d_omega + d_gain_mu * mm_val;
 
     ii += (int) floor(d_mu);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]