commit-gnuradio
[Top][All Lists]
Advanced

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

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


From: trondeau
Subject: [Commit-gnuradio] r3637 - in gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src: lib/general python/gnuradio/blksimpl
Date: Mon, 25 Sep 2006 14:16:55 -0600 (MDT)

Author: trondeau
Date: 2006-09-25 14:16:55 -0600 (Mon, 25 Sep 2006)
New Revision: 3637

Modified:
   
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
   
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:
fixed gray coding flag for PSK demodulators and log and verbose flag tests

Modified: 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
   2006-09-25 18:07:36 UTC (rev 3636)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
   2006-09-25 20:16:55 UTC (rev 3637)
@@ -65,7 +65,7 @@
   gr_complex *err = (gr_complex *) output_items[1];
 
   float mag=0;
-  float alpha = 0.005;
+  float alpha = 0.001;
 
   bool write_err = output_items.size() >= 2;
 
@@ -86,7 +86,7 @@
     }
     
     if(write_err)
-      err[i] = gr_complex(mag, d_loop_gain);
+      err[i] = gr_complex(-log10(mag), d_loop_gain);
   }
   return noutput_items;
 }

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
      2006-09-25 18:07:36 UTC (rev 3636)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
      2006-09-25 20:16:55 UTC (rev 3637)
@@ -93,10 +93,10 @@
         self.bytes2chunks = \
           gr.packed_to_unpacked_bb(self.bits_per_symbol(), gr.GR_MSB_FIRST)
 
-        if self._gray_code:
-            self.gray_coder = gr.map_bb(psk.binary_to_gray[arity])
+        if self._gray_code == True:
+            self.symbol_mapper = gr.map_bb(psk.binary_to_gray[arity])
         else:
-            self.gray_coder = gr.map_bb(psk.binary_to_ungray[arity])
+            self.symbol_mapper = gr.map_bb(psk.binary_to_ungray[arity])
 
         self.diffenc = gr.diff_encoder_bb(arity)
         
@@ -115,13 +115,13 @@
                                                    self.rrc_taps)
 
        # Connect
-        fg.connect(self.bytes2chunks, self.gray_coder, self.diffenc,
+        fg.connect(self.bytes2chunks, self.symbol_mapper, self.diffenc,
                    self.chunks2symbols, self.rrc_filter)
 
-        if verbose:
+        if verbose == True:
             self._print_verbage()
             
-        if log:
+        if log == True:
             self._setup_logging()
             
        # Initialize base class
@@ -163,8 +163,8 @@
         print "Modulation logging turned on."
         self._fg.connect(self.bytes2chunks,
                          gr.file_sink(gr.sizeof_char, "bytes2chunks.dat"))
-        self._fg.connect(self.gray_coder,
-                         gr.file_sink(gr.sizeof_char, "graycoder.dat"))
+        self._fg.connect(self.symbol_mapper,
+                         gr.file_sink(gr.sizeof_char, "symbol_mapper.dat"))
         self._fg.connect(self.diffenc,
                          gr.file_sink(gr.sizeof_char, "diffenc.dat"))
         self._fg.connect(self.chunks2symbols,
@@ -238,7 +238,7 @@
         self.pre_scaler = gr.multiply_const_cc(scale)   # scale the signal 
from full-range to +-1
         #self.agc = gr.agc2_cc(6e-1, 6e-1, 1, 1, 1000)
         #self.agc = gr.feedforward_agc_cc(500, 1)
-        self.agc = gr.agc_log_cc(0.5, 1)
+        self.agc = gr.agc_log_cc(0.1, 1)
 
         # Costas loop (carrier tracking)
         # FIXME: need to decide how to handle this more generally; do we pull 
it from higher layer?
@@ -274,21 +274,23 @@
 
         self.slicer = gr.constellation_decoder_cb(rotated_const, range(arity))
 
-        # FIXME should be conditional on self._gray 
-        self.gray_decoder = gr.map_bb(psk.gray_to_binary[arity])
+        if self._gray_code == True:
+            self.symbol_mapper = gr.map_bb(psk.gray_to_binary[arity])
+        else:
+            self.symbol_mapper = gr.map_bb(psk.ungray_to_binary[arity])
         
         # unpack the k bit vector into a stream of bits
         self.unpack = gr.unpack_k_bits_bb(self.bits_per_symbol())
 
-        if verbose:
+        if verbose == True:
             self._print_verbage()
 
-        if log:
+        if log == True:
             self._setup_logging()
 
         # Connect and Initialize base class
         self._fg.connect(self.pre_scaler, self.agc, self.costas_loop, 
self.rrc_filter, self.clock_recovery,
-                         self.diffdec, self.slicer, self.gray_decoder, 
self.unpack)
+                         self.diffdec, self.slicer, self.decoder, self.unpack)
         gr.hier_block.__init__(self, self._fg, self.pre_scaler, self.unpack)
 
     def samples_per_symbol(self):
@@ -309,6 +311,8 @@
 
     def _setup_logging(self):
         print "Modulation logging turned on."
+        self._fg.connect(self.pre_scaler,
+                         gr.file_sink(gr.sizeof_gr_complex, "pre_scaler.dat"))
         self._fg.connect(self.agc,
                          gr.file_sink(gr.sizeof_gr_complex, "agc.dat"))
         self._fg.connect((self.agc,1),
@@ -327,8 +331,8 @@
                          gr.file_sink(gr.sizeof_gr_complex, "diffdec.dat"))    
    
         self._fg.connect(self.slicer,
                         gr.file_sink(gr.sizeof_char, "slicer.dat"))
-        self._fg.connect(self.gray_decoder,
-                         gr.file_sink(gr.sizeof_char, "gray_decoder.dat"))
+        self._fg.connect(self.symbol_mapper,
+                         gr.file_sink(gr.sizeof_char, "symbol_mapper.dat"))
         self._fg.connect(self.unpack,
                          gr.file_sink(gr.sizeof_char, "unpack.dat"))
         

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
      2006-09-25 18:07:36 UTC (rev 3636)
+++ 
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
      2006-09-25 20:16:55 UTC (rev 3637)
@@ -93,10 +93,10 @@
         self.bytes2chunks = \
           gr.packed_to_unpacked_bb(self.bits_per_symbol(), gr.GR_MSB_FIRST)
 
-        if self._gray_code:
-            self.gray_coder = gr.map_bb(psk.binary_to_gray[arity])
+        if self._gray_code == True:
+            self.symbol_mapper = gr.map_bb(psk.binary_to_gray[arity])
         else:
-            self.gray_coder = gr.map_bb(psk.binary_to_ungray[arity])
+            self.symbol_mapper = gr.map_bb(psk.binary_to_ungray[arity])
             
         self.diffenc = gr.diff_encoder_bb(arity)
 
@@ -114,14 +114,14 @@
 
        self.rrc_filter = gr.interp_fir_filter_ccf(self._samples_per_symbol, 
self.rrc_taps)
 
-        if verbose:
+        if verbose == True:
             self._print_verbage()
         
-        if log:
+        if log == True:
             self._setup_logging()
             
        # Connect & Initialize base class
-        self._fg.connect(self.bytes2chunks, self.gray_coder, self.diffenc,
+        self._fg.connect(self.bytes2chunks, self.symbol_mapper, self.diffenc,
                          self.chunks2symbols, self.rrc_filter)
        gr.hier_block.__init__(self, self._fg, self.bytes2chunks, 
self.rrc_filter)
 
@@ -141,8 +141,8 @@
         print "Modulation logging turned on."
         self._fg.connect(self.bytes2chunks,
                          gr.file_sink(gr.sizeof_char, "bytes2chunks.dat"))
-        self._fg.connect(self.gray_coder,
-                         gr.file_sink(gr.sizeof_char, "graycoder.dat"))
+        self._fg.connect(self.symbol_mapper,
+                         gr.file_sink(gr.sizeof_char, "symbol_mapper.dat"))
         self._fg.connect(self.diffenc,
                          gr.file_sink(gr.sizeof_char, "diffenc.dat"))        
         self._fg.connect(self.chunks2symbols,
@@ -235,7 +235,7 @@
         scale = (1.0/16384.0)
         self.pre_scaler = gr.multiply_const_cc(scale)   # scale the signal 
from full-range to +-1
         #self.agc = gr.agc2_cc(6e-1, 6e-1, 1, 1, 1000)
-        self.agc = gr.agc_log_cc(0.5, 1)
+        self.agc = gr.agc_log_cc(0.1, 1)
        
         # Costas loop (carrier tracking)
         # FIXME: need to decide how to handle this more generally; do we pull 
it from higher layer?
@@ -272,21 +272,23 @@
 
         self.slicer = gr.constellation_decoder_cb(rotated_const, range(arity))
 
-        # FIXME  needs to be conditional on self._gray_code
-        self.gray_decoder = gr.map_bb(psk.gray_to_binary[arity])
+        if self._gray_code == True:
+            self.symbol_mapper = gr.map_bb(psk.gray_to_binary[arity])
+        else:
+            self.symbol_mapper = gr.map_bb(psk.ungray_to_binary[arity])
         
         # unpack the k bit vector into a stream of bits
         self.unpack = gr.unpack_k_bits_bb(self.bits_per_symbol())
 
-        if verbose:
+        if verbose == True:
             self._print_verbage()
         
-        if log:
+        if log == True:
             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.diffdec, self.slicer, self.gray_decoder, 
self.unpack)
+                         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):
@@ -324,8 +326,8 @@
                          gr.file_sink(gr.sizeof_gr_complex, "diffdec.dat"))    
    
         self._fg.connect(self.slicer,
                          gr.file_sink(gr.sizeof_char, "slicer.dat"))
-        self._fg.connect(self.gray_decoder,
-                         gr.file_sink(gr.sizeof_char, "gray_decoder.dat"))
+        self._fg.connect(self.symbol_mapper,
+                         gr.file_sink(gr.sizeof_char, "symbol_mapper.dat"))
         self._fg.connect(self.unpack,
                          gr.file_sink(gr.sizeof_char, "unpack.dat"))
 





reply via email to

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