commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r3582 - in gnuradio/branches/developers/trondeau/digit


From: trondeau
Subject: [Commit-gnuradio] r3582 - in gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src: lib/general python/gnuradio/blksimpl
Date: Tue, 19 Sep 2006 00:38:39 -0600 (MDT)

Author: trondeau
Date: 2006-09-19 00:38:39 -0600 (Tue, 19 Sep 2006)
New Revision: 3582

Modified:
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
   
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
Log:
dbpsk working with discon without AGC loop; qpsk not receiving but 
constellation looks good

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
  2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
  2006-09-19 06:38:39 UTC (rev 3582)
@@ -48,7 +48,7 @@
                                                  float gain_mu, float 
omega_relative_limit)
   : gr_block ("clock_recovery_mm_cc",
              gr_make_io_signature (1, 1, sizeof (gr_complex)),
-             gr_make_io_signature (1, 1, sizeof (gr_complex))),
+             gr_make_io_signature (1, 2, sizeof (gr_complex))),
     d_mu (mu), d_omega(omega), d_gain_omega(gain_omega), 
     d_omega_relative_limit(omega_relative_limit), 
     d_gain_mu(gain_mu), d_last_sample(0), d_interp(new 
gri_mmse_fir_interpolator_cc()),
@@ -119,6 +119,9 @@
 {
   const gr_complex *in = (const gr_complex *) input_items[0];
   gr_complex *out = (gr_complex *) output_items[0];
+  gr_complex *foptr = (gr_complex *) output_items[1];
+
+  bool write_foptr = output_items.size() >= 2;
   
   int  ii = 0;                         // input index
   int  oo = 0;                         // output index
@@ -165,6 +168,10 @@
       printf("%f\t%f\n", d_omega, d_mu);
     }
 
+    // write the error signal to the second output
+    if (write_foptr)
+      foptr[oo-1] = gr_complex(d_mu,0);
+
     if (ii < 0)        // clamp it.  This should only happen with bogus input
       ii = 0;
   }

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
        2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
        2006-09-19 06:38:39 UTC (rev 3582)
@@ -118,8 +118,6 @@
     else if (d_freq < d_min_freq)
       d_freq = d_min_freq;
     
-    //    fprintf(stderr, "Costas frequency = %f\terror = %f\n", d_freq, 
error);
-    // d_freq_out << d_freq << std::endl;
     if (write_foptr)
       foptr[i] = gr_complex(d_freq,0);
   }

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
        2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
        2006-09-19 06:38:39 UTC (rev 3582)
@@ -279,13 +279,13 @@
                           help="set RRC excess bandwith factor 
[default=%default]")
         parser.add_option("", "--no-gray-code", action="store_false", 
default=True,
                           help="Don't use gray coding on modulated bits 
[default=%default]")
-        parser.add_option("", "--costas-alpha", type="float", default=0.005,
+        parser.add_option("", "--costas-alpha", type="float", default=0.05,
                           help="set Costas loop alpha value 
[default=%default]")
         parser.add_option("", "--gain-mu", type="float", default=0.05,
                           help="set M&M symbol sync loop gain mu value 
[default=%default] (GMSK/PSK)")
         parser.add_option("", "--mu", type="float", default=0.5,
                           help="set M&M symbol sync loop mu value 
[default=%default] (GMSK/PSK)")
-        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.0002,
+        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.5,
                           help="M&M clock recovery omega relative limit 
[default=%default] (GMSK/PSK)")
     add_options=staticmethod(add_options)
     

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
       2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
       2006-09-19 06:38:39 UTC (rev 3582)
@@ -87,7 +87,7 @@
         # pulse shaping filter
        self.rrc_taps = gr.firdes.root_raised_cosine(
            self._samples_per_symbol, # gain  (samples_per_symbol since we're
-                                      #   interpolating by samples_per_symbol)
+                                      # interpolating by samples_per_symbol)
            self._samples_per_symbol, # sampling rate
            1.0,                      # symbol rate
            self._excess_bw,          # excess bandwidth (roll-off factor)
@@ -162,7 +162,7 @@
 
 class dbpsk_demod(gr.hier_block):
     def __init__(self, fg, samples_per_symbol, excess_bw=0.35, 
costas_alpha=0.05,
-                 gain_mu=0.03, mu=0.05, omega_relative_limit=0.5,
+                 gain_mu=0.03, mu=0.05, omega_relative_limit=0.005,
                  gray_code=True, verbose=True, log=False):
         """
        Hierarchical block for RRC-filtered differential BPSK demodulation
@@ -207,7 +207,8 @@
 
         # Automatic gain control
         self.preamp = gr.multiply_const_cc(10e-5)
-        self.agc = gr.agc_cc(1e-3, 1, 1, 1000)
+        #self.agc = gr.agc_cc(1e-4, 1, 1, 1000)
+        self.agc = gr.multiply_const_cc(1)
         
         # Costas loop (carrier tracking)
         # FIXME: need to decide how to handle this more generally; do we pull 
it from higher layer?
@@ -234,7 +235,6 @@
                                                     self._omega_relative_limit)
 
         # find closest constellation point
-        #rot = .707 + .707j
         rot = 1
         rotated_const = map(lambda pt: pt * rot, psk.constellation[arity])
         print "rotated_const =", rotated_const
@@ -270,7 +270,9 @@
         print "bits per symbol = %d"         % self.bits_per_symbol()
         print "RRC roll-off factor = %.2f"   % self._excess_bw
         print "Costas Loop alpha = %.5f"     % self._costas_alpha
-        print "M&M symbol sync gain  = %.5f" % self._gain_mu
+        print "M&M symbol sync gain = %.5f"  % self._gain_mu
+        print "M&M symbol sync mu = %.5f"    % self._mu
+        print "M&M omega relative limit = %.5f" % self._omega_relative_limit
 
     def _setup_logging(self):
         print "Modulation logging turned on."
@@ -284,6 +286,8 @@
                         gr.file_sink(gr.sizeof_gr_complex, "rrc_filter.dat"))
         self._fg.connect(self.clock_recovery,
                         gr.file_sink(gr.sizeof_gr_complex, 
"clock_recovery.dat"))
+        self._fg.connect((self.clock_recovery,1),
+                        gr.file_sink(gr.sizeof_gr_complex, 
"clock_recovery_error.dat"))
         self._fg.connect(self.diffdec,
                         gr.file_sink(gr.sizeof_gr_complex, "diffdec.dat"))     
   
         self._fg.connect(self.slicer,
@@ -301,13 +305,13 @@
                           help="set RRC excess bandwith factor 
[default=%default] (PSK)")
         parser.add_option("", "--no-gray-code", action="store_false", 
default=True,
                           help="Don't use gray coding on modulated bits 
[default=%default] (PSK)")
-        parser.add_option("", "--costas-alpha", type="float", default=0.005,
+        parser.add_option("", "--costas-alpha", type="float", default=0.05,
                           help="set Costas loop alpha value [default=%default] 
(PSK)")
         parser.add_option("", "--gain-mu", type="float", default=0.05,
                           help="set M&M symbol sync loop gain mu value 
[default=%default] (GMSK/PSK)")
         parser.add_option("", "--mu", type="float", default=0.5,
                           help="set M&M symbol sync loop mu value 
[default=%default] (GMSK/PSK)")
-        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.0002,
+        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.005,
                           help="M&M clock recovery omega relative limit 
[default=%default] (GMSK/PSK)")
     add_options=staticmethod(add_options)
     

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
       2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
       2006-09-19 06:38:39 UTC (rev 3582)
@@ -159,7 +159,7 @@
 
 class dqpsk_demod(gr.hier_block):
     def __init__(self, fg, samples_per_symbol, excess_bw=0.35, 
costas_alpha=0.05,
-                 gain_mu=0.03, mu=0.05, omega_relative_limit=0.5,
+                 gain_mu=0.03, mu=0.05, omega_relative_limit=0.005,
                  gray_code=True, verbose=True, log=False):
         """
        Hierarchical block for RRC-filtered DQPSK demodulation
@@ -224,13 +224,14 @@
         self.rrc_filter=gr.fir_filter_ccf(1, self.rrc_taps)
 
         # symbol clock recovery
-        omega = samples_per_symbol
-        gain_omega = .25 * gain_mu * gain_mu
+        omega = self._samples_per_symbol
+        gain_omega = .25 * self._gain_mu * self._gain_mu
         self.clock_recovery=gr.clock_recovery_mm_cc(omega, gain_omega,
                                                     self._mu, self._gain_mu,
                                                     self._omega_relative_limit)
 
         # find closest constellation point
+        #rot = 1
         rot = .707 + .707j
         rotated_const = map(lambda pt: pt * rot, psk.constellation[arity])
         print "rotated_const = %s" % rotated_const
@@ -266,7 +267,9 @@
         print "bits per symbol = %d"         % self.bits_per_symbol()
         print "RRC roll-off factor = %.2f"   % self._excess_bw
         print "Costas Loop alpha = %.5f"     % self._costas_alpha
-        print "M&M symbol sync gain  = %.5f" % self._gain_mu
+        print "M&M symbol sync gain = %.5f" % self._gain_mu
+        print "M&M symbol sync mu = %.5f"   % self._mu
+        print "M&M omega relative limit = %.5f" % self._omega_relative_limit
 
     def _setup_logging(self):
         print "Modulation logging turned on."
@@ -297,11 +300,11 @@
                           help="set RRC excess bandwith factor 
[default=%default] (PSK)")
         parser.add_option("", "--no-gray-code", action="store_false", 
default=True,
                           help="Don't use gray coding on modulated bits 
[default=%default] (PSK)")
-        parser.add_option("", "--costas-alpha", type="float", default=0.005,
+        parser.add_option("", "--costas-alpha", type="float", default=0.05,
                           help="set Costas loop alpha value [default=%default] 
(PSK)")
         parser.add_option("", "--gain-mu", type="float", default=0.05,
                           help="set M&M symbol sync loop gain mu value 
[default=%default] (PSK)")
-        parser.add_option("", "--mu", type="float", default=0.5,
+        parser.add_option("", "--mu", type="float", default=0.005,
                           help="set M&M symbol sync loop mu value 
[default=%default] (PSK)")
     add_options=staticmethod(add_options)
 

Modified: 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
        2006-09-19 05:57:02 UTC (rev 3581)
+++ 
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
        2006-09-19 06:38:39 UTC (rev 3582)
@@ -145,8 +145,8 @@
 class gmsk_demod(gr.hier_block):
 
     def __init__(self, fg, samples_per_symbol=2,
-                 omega=None, gain_mu=0.03, mu=0.5,
-                 omega_relative_limit=0.000200, freq_error=0.0,
+                 omega=None, gain_mu=0.05, mu=0.5,
+                 omega_relative_limit=0.005, freq_error=0.0,
                  verbose=True, log=False):
         """
        Hierarchical block for Gaussian Minimum Shift Key (GMSK)
@@ -255,11 +255,11 @@
         """
         parser.add_option("", "--omega", type="float", default=None,
                           help="M&M clock recovery omega [default=%default] 
(GMSK)")
-        parser.add_option("", "--gain-mu", type="float", default=0.03,
+        parser.add_option("", "--gain-mu", type="float", default=0.05,
                           help="M&M clock recovery gain mu [default=%default] 
(GMSK/PSK)")
         parser.add_option("", "--mu", type="float", default=0.5,
                           help="M&M clock recovery mu [default=%default] 
(GMSK/PSK)")
-        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.0002,
+        parser.add_option("", "--omega-relative-limit", type="float", 
default=0.005,
                           help="M&M clock recovery omega relative limit 
[default=%default] (GMSK/PSK)")
         parser.add_option("", "--freq-error", type="float", default=0.0,
                           help="M&M clock recovery frequency error 
[default=%default] (GMSK)")





reply via email to

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