commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r4216 - gnuradio/branches/developers/trondeau/digital-


From: trondeau
Subject: [Commit-gnuradio] r4216 - gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl
Date: Tue, 2 Jan 2007 07:45:28 -0700 (MST)

Author: trondeau
Date: 2007-01-02 07:45:28 -0700 (Tue, 02 Jan 2007)
New Revision: 4216

Modified:
   
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/d8psk.py
   
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
   
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
Log:
modified PSK demodulators to use new MPSK receiver for original hier_blocks

Modified: 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/d8psk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/d8psk.py
      2007-01-02 14:43:35 UTC (rev 4215)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/d8psk.py
      2007-01-02 14:45:28 UTC (rev 4216)
@@ -39,14 +39,14 @@
 _def_verbose = False
 _def_log = False
 
-_def_costas_alpha = None
-_def_gain_mu = 7.5e-3
-_def_mu = 0.00
-_def_omega_relative_limit = 0.001
+_def_costas_alpha = 0.01
+_def_gain_mu = 0.05
+_def_mu = 0.5
+_def_omega_relative_limit = 0.005
 
 
 # /////////////////////////////////////////////////////////////////////////////
-#                           DQPSK modulator
+#                           D8PSK modulator
 # /////////////////////////////////////////////////////////////////////////////
 
 class d8psk_mod(gr.hier_block):
@@ -221,9 +221,9 @@
         self._samples_per_symbol = samples_per_symbol
         self._excess_bw = excess_bw
         self._costas_alpha = costas_alpha
-        self._gain_mu = gain_mu
-        self._mu = mu
-        self._omega_relative_limit = omega_relative_limit
+        self._mm_gain_mu = gain_mu
+        self._mm_mu = mu
+        self._mm_omega_relative_limit = omega_relative_limit
         self._gray_code = gray_code
 
         if samples_per_symbol < 2:
@@ -237,37 +237,31 @@
         #self.agc = gr.agc2_cc(0.6e-1, 1e-3, 1, 1, 100)
         self.agc = gr.feedforward_agc_cc(16, 1.0)
 
-        if 0:
-            # Costas loop (carrier tracking)
-            if self._costas_alpha is None:   # If no alpha value was specified 
by the user
-                alpha_dir = {2:0.075, 3:0.09, 4:0.09, 5:0.095, 6:0.10, 7:0.105}
-                self._costas_alpha = alpha_dir[self._samples_per_symbol]
-        
-            costas_order = 4        
-            # The value of beta is now set to be underdamped; this value can 
have a huge impact on the
-            # performance of QPSK. Set to 0.25 for critically damped or higher 
for underdamped responses.
-            beta = .35 * self._costas_alpha * self._costas_alpha
-            self.costas_loop = gr.costas_loop_cc(self._costas_alpha, beta, 
0.02, -0.02, costas_order)
-        
         # RRC data filter
         ntaps = 11 * samples_per_symbol
         self.rrc_taps = gr.firdes.root_raised_cosine(
-            self._samples_per_symbol, # gain
+            1.0,                      # gain
             self._samples_per_symbol, # sampling rate
             1.0,                      # symbol rate
             self._excess_bw,          # excess bandwidth (roll-off factor)
             ntaps)
+        self.rrc_filter=gr.interp_fir_filter_ccf(1, self.rrc_taps)        
 
-        self.rrc_filter=gr.fir_filter_ccf(1, self.rrc_taps)
-
         # symbol clock recovery
-        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)
+        self._mm_omega = self._samples_per_symbol
+        self._mm_gain_omega = .25 * self._mm_gain_mu * self._mm_gain_mu
+        self._costas_beta  = 0.25 * self._costas_alpha * self._costas_alpha
+        fmin = -0.05
+        fmax = 0.05
 
-        self.diffdec = gr.diff_decoder_bb(arity)
+        self.receiver=gr.mpsk_receiver_cc(arity, 0,
+                                         self._costas_alpha, self._costas_beta,
+                                         fmin, fmax,
+                                         self._mm_mu, self._mm_gain_mu,
+                                         self._mm_omega, self._mm_gain_omega,
+                                         self._mm_omega_relative_limit)
+        
+        #self.diffdec = gr.diff_decoder_bb(arity)
 
         # find closest constellation point
         rot = 1
@@ -290,16 +284,8 @@
             self._setup_logging()
  
         # Connect & Initialize base class
-        if 0:
-            self._fg.connect(self.pre_scaler, self.agc, #self.costas_loop,
-                             self.rrc_filter, self.clock_recovery,
-                             self.diffdec, self.slicer, self.symbol_mapper,
-                             self.unpack)
-        else:
-            self._fg.connect(self.pre_scaler, self.agc, #self.costas_loop,
-                             self.rrc_filter, self.clock_recovery,
-                             self.slicer, self.symbol_mapper,
-                             self.unpack)
+        self._fg.connect(self.pre_scaler, self.agc, self.rrc_filter, 
self.receiver,
+                         self.slicer, self.symbol_mapper, self.unpack)
         gr.hier_block.__init__(self, self._fg, self.pre_scaler, self.unpack)
 
     def samples_per_symbol(self):
@@ -310,13 +296,17 @@
     bits_per_symbol = staticmethod(bits_per_symbol)      # make it a static 
method.  RTFM
 
     def _print_verbage(self):
-        print "bits per symbol = %d"         % self.bits_per_symbol()
-        print "Gray code = %s"               % self._gray_code
-        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 mu = %.5f"    % self._mu
-        print "M&M omega relative limit = %.5f" % self._omega_relative_limit
+        print "\nDemodulator:"
+        print "bits per symbol:     %d"   % self.bits_per_symbol()
+        print "Gray code:           %s"   % self._gray_code
+        print "RRC roll-off factor: %.2f" % self._excess_bw
+        print "Costas Loop alpha:   %.2e" % self._costas_alpha
+        print "Costas Loop beta:    %.2e" % self._costas_beta
+        print "M&M mu:              %.2f" % self._mm_mu
+        print "M&M mu gain:         %.2e" % self._mm_gain_mu
+        print "M&M omega:           %.2f" % self._mm_omega
+        print "M&M omega gain:      %.2e" % self._mm_gain_omega
+        print "M&M omega limit:     %.2f" % self._mm_omega_relative_limit
         
 
     def _setup_logging(self):
@@ -325,16 +315,10 @@
                          gr.file_sink(gr.sizeof_gr_complex, 
"rx_prescaler.dat"))
         self._fg.connect(self.agc,
                          gr.file_sink(gr.sizeof_gr_complex, "rx_agc.dat"))
-#        self._fg.connect(self.costas_loop,
-#                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_costas_loop.dat"))
-#        self._fg.connect((self.costas_loop,1),
-#                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_costas_error.dat"))
         self._fg.connect(self.rrc_filter,
                          gr.file_sink(gr.sizeof_gr_complex, 
"rx_rrc_filter.dat"))
-        self._fg.connect(self.clock_recovery,
-                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_clock_recovery.dat"))
-        self._fg.connect((self.clock_recovery,1),
-                        gr.file_sink(gr.sizeof_gr_complex, 
"rx_clock_recovery_error.dat"))
+        self._fg.connect(self.clock_receiver,
+                         gr.file_sink(gr.sizeof_gr_complex, "rx_receiver.dat"))
         self._fg.connect(self.slicer,
                          gr.file_sink(gr.sizeof_char, "rx_slicer.dat"))
 #        self._fg.connect(self.diffdec,

Modified: 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
      2007-01-02 14:43:35 UTC (rev 4215)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
      2007-01-02 14:45:28 UTC (rev 4216)
@@ -39,9 +39,9 @@
 _def_verbose = False
 _def_log = False
 
-_def_costas_alpha = None
-_def_gain_mu = 0.03
-_def_mu = 0.05
+_def_costas_alpha = 0.01
+_def_gain_mu = 0.05
+_def_mu = 0.5
 _def_omega_relative_limit = 0.005
 
 
@@ -100,7 +100,6 @@
 
         self.diffenc = gr.diff_encoder_bb(arity)
 
-        print psk.constellation[arity]
         self.chunks2symbols = gr.chunks_to_symbols_bc(psk.constellation[arity])
 
         # pulse shaping filter
@@ -155,9 +154,10 @@
 
 
     def _print_verbage(self):
-        print "bits per symbol = %d" % self.bits_per_symbol()
-        print "Gray code = %s" % self._gray_code
-        print "RRC roll-off factor = %.2f" % self._excess_bw
+        print "\nModulator:"
+        print "bits per symbol:     %d" % self.bits_per_symbol()
+        print "Gray code:           %s" % self._gray_code
+        print "RRC roll-off factor: %.2f" % self._excess_bw
 
     def _setup_logging(self):
         print "Modulation logging turned on."
@@ -223,9 +223,9 @@
         self._samples_per_symbol = samples_per_symbol
         self._excess_bw = excess_bw
         self._costas_alpha = costas_alpha
-        self._gain_mu = gain_mu
-        self._mu = mu
-        self._omega_relative_limit = omega_relative_limit
+        self._mm_gain_mu = gain_mu
+        self._mm_mu = mu
+        self._mm_omega_relative_limit = omega_relative_limit
         self._gray_code = gray_code
         
         if samples_per_symbol < 2:
@@ -239,32 +239,29 @@
         #self.agc = gr.agc2_cc(0.6e-1, 1e-3, 1, 1, 100)
         self.agc = gr.feedforward_agc_cc(16, 1.0)
 
-        
-        # Costas loop (carrier tracking)
-        # The Costas loop is not needed for BPSK, though it can help. Turn the 
Costas loop on
-        # by setting an alpha value not None.
-        if self._costas_alpha is not None:
-            costas_order = 2
-            beta = .25 * self._costas_alpha * self._costas_alpha
-            self.costas_loop = gr.costas_loop_cc(self._costas_alpha, beta, 
0.002, -0.002, costas_order)
-
         # RRC data filter
-        ntaps = 11 * self._samples_per_symbol
+        ntaps = 11 * samples_per_symbol
         self.rrc_taps = gr.firdes.root_raised_cosine(
-            1.0,                      # gain 
+            1.0,                      # gain
             self._samples_per_symbol, # sampling rate
             1.0,                      # symbol rate
             self._excess_bw,          # excess bandwidth (roll-off factor)
             ntaps)
+        self.rrc_filter=gr.interp_fir_filter_ccf(1, self.rrc_taps)        
 
-        self.rrc_filter=gr.fir_filter_ccf(1, self.rrc_taps)
-
         # symbol clock recovery
-        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)
+        self._mm_omega = self._samples_per_symbol
+        self._mm_gain_omega = .25 * self._mm_gain_mu * self._mm_gain_mu
+        self._costas_beta  = 0.25 * self._costas_alpha * self._costas_alpha
+        fmin = -0.05
+        fmax = 0.05
+        
+        self.receiver=gr.mpsk_receiver_cc(arity, 0,
+                                         self._costas_alpha, self._costas_beta,
+                                         fmin, fmax,
+                                         self._mm_mu, self._mm_gain_mu,
+                                         self._mm_omega, self._mm_gain_omega,
+                                         self._mm_omega_relative_limit)
 
         # find closest constellation point
         rot = 1
@@ -291,15 +288,8 @@
             self._setup_logging()
 
         # Connect and Initialize base class
-        if self._costas_alpha is not None:   # With Costas Loop
-            self._fg.connect(self.pre_scaler, self.agc, self.costas_loop,
-                             self.rrc_filter, self.clock_recovery, 
self.diffdec,
-                             self.slicer, self.symbol_mapper, self.unpack)
-        else: # Without Costas Loop
-            self._fg.connect(self.pre_scaler, self.agc,
-                             self.rrc_filter, self.clock_recovery, 
self.diffdec,
-                             self.slicer, self.symbol_mapper, self.unpack)
-        self._fg.connect(self.agc, gr.file_sink(gr.sizeof_gr_complex, 
"dbpsk_in.dat"))
+        self._fg.connect(self.pre_scaler, self.agc, self.rrc_filter, 
self.receiver,
+                         self.diffdec, self.slicer, self.symbol_mapper, 
self.unpack)
         gr.hier_block.__init__(self, self._fg, self.pre_scaler, self.unpack)
 
     def samples_per_symbol(self):
@@ -310,42 +300,36 @@
     bits_per_symbol = staticmethod(bits_per_symbol)      # make it a static 
method.  RTFM
 
     def _print_verbage(self):
-        print "bits per symbol = %d"         % self.bits_per_symbol()
-        print "Gray code = %s"               % self._gray_code
-        print "RRC roll-off factor = %.2f"   % self._excess_bw
-        if self._costas_alpha is not None:
-            print "Costas Loop alpha = %.5f"     % self._costas_alpha
-        else:
-            print "Costas Loop is turned off"
-        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
+        print "\nDemodulator:"
+        print "bits per symbol:     %d"   % self.bits_per_symbol()
+        print "Gray code:           %s"   % self._gray_code
+        print "RRC roll-off factor: %.2f" % self._excess_bw
+        print "Costas Loop alpha:   %.2e" % self._costas_alpha
+        print "Costas Loop beta:    %.2e" % self._costas_beta
+        print "M&M mu:              %.2f" % self._mm_mu
+        print "M&M mu gain:         %.2e" % self._mm_gain_mu
+        print "M&M omega:           %.2f" % self._mm_omega
+        print "M&M omega gain:      %.2e" % self._mm_gain_omega
+        print "M&M omega limit:     %.2f" % self._mm_omega_relative_limit
 
     def _setup_logging(self):
         print "Modulation logging turned on."
         self._fg.connect(self.pre_scaler,
-                         gr.file_sink(gr.sizeof_gr_complex, "prescaler.dat"))
+                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_prescaler.dat"))
         self._fg.connect(self.agc,
-                         gr.file_sink(gr.sizeof_gr_complex, "agc.dat"))
-        if self._costas_alpha is not None:
-            self._fg.connect(self.costas_loop,
-                             gr.file_sink(gr.sizeof_gr_complex, 
"costas_loop.dat"))
-            self._fg.connect((self.costas_loop,1),
-                             gr.file_sink(gr.sizeof_gr_complex, 
"costas_error.dat"))
+                         gr.file_sink(gr.sizeof_gr_complex, "rx_agc.dat"))
         self._fg.connect(self.rrc_filter,
-                         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"))
+                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_rrc_filter.dat"))
+        self._fg.connect(self.receiver,
+                         gr.file_sink(gr.sizeof_gr_complex, "rx_receiver.dat"))
         self._fg.connect(self.diffdec,
-                         gr.file_sink(gr.sizeof_gr_complex, "diffdec.dat"))    
    
+                         gr.file_sink(gr.sizeof_gr_complex, "rx_diffdec.dat")) 
       
         self._fg.connect(self.slicer,
-                        gr.file_sink(gr.sizeof_char, "slicer.dat"))
+                        gr.file_sink(gr.sizeof_char, "rx_slicer.dat"))
         self._fg.connect(self.symbol_mapper,
-                         gr.file_sink(gr.sizeof_char, "symbol_mapper.dat"))
+                         gr.file_sink(gr.sizeof_char, "rx_symbol_mapper.dat"))
         self._fg.connect(self.unpack,
-                         gr.file_sink(gr.sizeof_char, "unpack.dat"))
+                         gr.file_sink(gr.sizeof_char, "rx_unpack.dat"))
         
     def add_options(parser):
         """

Modified: 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
      2007-01-02 14:43:35 UTC (rev 4215)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
      2007-01-02 14:45:28 UTC (rev 4216)
@@ -39,9 +39,9 @@
 _def_verbose = False
 _def_log = False
 
-_def_costas_alpha = None
-_def_gain_mu = 0.01
-_def_mu = 0.00
+_def_costas_alpha = 0.01
+_def_gain_mu = 0.05
+_def_mu = 0.5
 _def_omega_relative_limit = 0.005
 
 
@@ -133,9 +133,10 @@
     bits_per_symbol = staticmethod(bits_per_symbol)      # make it a static 
method.  RTFM
 
     def _print_verbage(self):
-        print "bits per symbol = %d" % self.bits_per_symbol()
-        print "Gray code = %s" % self._gray_code
-        print "RRS roll-off factor = %f" % self._excess_bw
+        print "\nModulator:"
+        print "bits per symbol:     %d" % self.bits_per_symbol()
+        print "Gray code:           %s" % self._gray_code
+        print "RRS roll-off factor: %f" % self._excess_bw
 
     def _setup_logging(self):
         print "Modulation logging turned on."
@@ -221,9 +222,9 @@
         self._samples_per_symbol = samples_per_symbol
         self._excess_bw = excess_bw
         self._costas_alpha = costas_alpha
-        self._gain_mu = gain_mu
-        self._mu = mu
-        self._omega_relative_limit = omega_relative_limit
+        self._mm_gain_mu = gain_mu
+        self._mm_mu = mu
+        self._mm_omega_relative_limit = omega_relative_limit
         self._gray_code = gray_code
 
         if samples_per_symbol < 2:
@@ -236,34 +237,29 @@
         self.pre_scaler = gr.multiply_const_cc(scale)   # scale the signal 
from full-range to +-1
         self.agc = gr.feedforward_agc_cc(16, 1.0)
        
-        # Costas loop (carrier tracking)
-        if self._costas_alpha is None:   # If no alpha value was specified by 
the user
-            alpha_dir = {2:0.075, 3:0.09, 4:0.09, 5:0.095, 6:0.10, 7:0.105}
-            self._costas_alpha = alpha_dir[self._samples_per_symbol]
-        
-        costas_order = 4        
-        # The value of beta is now set to be underdamped; this value can have 
a huge impact on the
-        # performance of QPSK. Set to 0.25 for critically damped or higher for 
underdamped responses.
-        beta = .35 * self._costas_alpha * self._costas_alpha
-        self.costas_loop = gr.costas_loop_cc(self._costas_alpha, beta, 0.02, 
-0.02, costas_order)
-
         # RRC data filter
         ntaps = 11 * samples_per_symbol
         self.rrc_taps = gr.firdes.root_raised_cosine(
-            self._samples_per_symbol, # gain
+            1.0,                      # gain
             self._samples_per_symbol, # sampling rate
             1.0,                      # symbol rate
             self._excess_bw,          # excess bandwidth (roll-off factor)
             ntaps)
+        self.rrc_filter=gr.interp_fir_filter_ccf(1, self.rrc_taps)        
 
-        self.rrc_filter=gr.fir_filter_ccf(1, self.rrc_taps)
-
         # symbol clock recovery
-        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)
+        self._mm_omega = self._samples_per_symbol
+        self._mm_gain_omega = .25 * self._mm_gain_mu * self._mm_gain_mu
+        self._costas_beta  = 0.25 * self._costas_alpha * self._costas_alpha
+        fmin = -0.05
+        fmax = 0.05
+        
+        self.receiver=gr.mpsk_receiver_cc(arity, pi/4.0,
+                                          self._costas_alpha, 
self._costas_beta,
+                                          fmin, fmax,
+                                          self._mm_mu, self._mm_gain_mu,
+                                          self._mm_omega, self._mm_gain_omega,
+                                          self._mm_omega_relative_limit)
 
         self.diffdec = gr.diff_decoder_bb(arity)
 
@@ -289,10 +285,8 @@
             self._setup_logging()
  
         # Connect & Initialize base class
-        self._fg.connect(self.pre_scaler, self.agc, self.costas_loop,
-                         self.rrc_filter, self.clock_recovery,
-                         self.slicer, self.diffdec, self.symbol_mapper,
-                         self.unpack)
+        self._fg.connect(self.pre_scaler, self.agc, self.rrc_filter, 
self.receiver,
+                         self.slicer, self.diffdec, self.symbol_mapper, 
self.unpack)
         gr.hier_block.__init__(self, self._fg, self.pre_scaler, self.unpack)
 
     def samples_per_symbol(self):
@@ -303,14 +297,17 @@
     bits_per_symbol = staticmethod(bits_per_symbol)      # make it a static 
method.  RTFM
 
     def _print_verbage(self):
-        print "bits per symbol = %d"         % self.bits_per_symbol()
-        print "Gray code = %s"               % self._gray_code
-        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 mu = %.5f"    % self._mu
-        print "M&M omega relative limit = %.5f" % self._omega_relative_limit
-        
+        print "\nDemodulator:"
+        print "bits per symbol:     %d"   % self.bits_per_symbol()
+        print "Gray code:           %s"   % self._gray_code
+        print "RRC roll-off factor: %.2f" % self._excess_bw
+        print "Costas Loop alpha:   %.2e" % self._costas_alpha
+        print "Costas Loop beta:    %.2e" % self._costas_beta
+        print "M&M mu:              %.2f" % self._mm_mu
+        print "M&M mu gain:         %.2e" % self._mm_gain_mu
+        print "M&M omega:           %.2f" % self._mm_omega
+        print "M&M omega gain:      %.2e" % self._mm_gain_omega
+        print "M&M omega limit:     %.2f" % self._mm_omega_relative_limit
 
     def _setup_logging(self):
         print "Modulation logging turned on."
@@ -318,16 +315,10 @@
                          gr.file_sink(gr.sizeof_gr_complex, 
"rx_prescaler.dat"))
         self._fg.connect(self.agc,
                          gr.file_sink(gr.sizeof_gr_complex, "rx_agc.dat"))
-        self._fg.connect(self.costas_loop,
-                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_costas_loop.dat"))
-        self._fg.connect((self.costas_loop,1),
-                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_costas_error.dat"))
         self._fg.connect(self.rrc_filter,
                          gr.file_sink(gr.sizeof_gr_complex, 
"rx_rrc_filter.dat"))
-        self._fg.connect(self.clock_recovery,
-                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_clock_recovery.dat"))
-        self._fg.connect((self.clock_recovery,1),
-                         gr.file_sink(gr.sizeof_gr_complex, 
"rx_clock_recovery_error.dat"))
+        self._fg.connect(self.receiver,
+                         gr.file_sink(gr.sizeof_gr_complex, "rx_receiver.dat"))
         self._fg.connect(self.diffdec,
                          gr.file_sink(gr.sizeof_char, "rx_diffdec.dat"))       
 
         self._fg.connect(self.slicer,





reply via email to

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