commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] gr-wxgui ChangeLog src/python/fftsink.py src/py...


From: Eric Blossom
Subject: [Commit-gnuradio] gr-wxgui ChangeLog src/python/fftsink.py src/py...
Date: Fri, 16 Jun 2006 06:34:53 +0000

CVSROOT:        /sources/gnuradio
Module name:    gr-wxgui
Changes by:     Eric Blossom <eb>       06/06/16 06:34:53

Modified files:
        .              : ChangeLog 
        src/python     : fftsink.py scopesink.py waterfallsink.py 

Log message:
        added set_sample_rate method

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gr-wxgui/ChangeLog?cvsroot=gnuradio&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/gr-wxgui/src/python/fftsink.py?cvsroot=gnuradio&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gr-wxgui/src/python/scopesink.py?cvsroot=gnuradio&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gr-wxgui/src/python/waterfallsink.py?cvsroot=gnuradio&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnuradio/gr-wxgui/ChangeLog,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- ChangeLog   2 Apr 2006 15:22:15 -0000       1.30
+++ ChangeLog   16 Jun 2006 06:34:53 -0000      1.31
@@ -1,3 +1,8 @@
+2006-06-15  Eric Blossom  <address@hidden>
+
+       * src/python/fftsink.py, src/python/waterfallsink.py,
+       src/python/scopesink.py: added set_sample_rate method.
+
 2006-04-02  Eric Blossom  <address@hidden>
 
        * src/python/fftsink.py (default_fft_rate): query prefs for default.

Index: src/python/fftsink.py
===================================================================
RCS file: /sources/gnuradio/gr-wxgui/src/python/fftsink.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/python/fftsink.py       2 Apr 2006 15:22:15 -0000       1.15
+++ src/python/fftsink.py       16 Jun 2006 06:34:53 -0000      1.16
@@ -81,6 +81,13 @@
     def set_baseband_freq(self, baseband_freq):
         self.baseband_freq = baseband_freq
         
+    def set_sample_rate(self, sample_rate):
+        self.sample_rate = sample_rate
+        self._set_n()
+
+    def _set_n(self):
+        self.one_in_n.set_n(max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
+        
 
 class fft_sink_f(gr.hier_block, fft_sink_base):
     def __init__(self, fg, parent, baseband_freq=0,
@@ -95,25 +102,25 @@
                                average=average, avg_alpha=avg_alpha, 
title=title,
                                peak_hold=peak_hold)
                                
-        s2p = gr.stream_to_vector(gr.sizeof_float, fft_size)
-        one_in_n = gr.keep_one_in_n(gr.sizeof_float * fft_size,
-                                    max(1, int(sample_rate/fft_size/fft_rate)))
+        s2p = gr.stream_to_vector(gr.sizeof_float, self.fft_size)
+        self.one_in_n = gr.keep_one_in_n(gr.sizeof_float * self.fft_size,
+                                         max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
 
-        mywindow = window.blackmanharris(fft_size)
-        fft = gr.fft_vfc(fft_size, True, mywindow)
+        mywindow = window.blackmanharris(self.fft_size)
+        fft = gr.fft_vfc(self.fft_size, True, mywindow)
         power = 0
         for tap in mywindow:
             power += tap*tap
             
-        c2mag = gr.complex_to_mag(fft_size)
-        self.avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
+        c2mag = gr.complex_to_mag(self.fft_size)
+        self.avg = gr.single_pole_iir_filter_ff(1.0, self.fft_size)
 
         # FIXME  We need to add 3dB to all bins but the DC bin
-        log = gr.nlog10_ff(20, fft_size,
-                           
-20*math.log10(fft_size)-10*math.log10(power/fft_size))
-        sink = gr.message_sink(gr.sizeof_float * fft_size, self.msgq, True)
+        log = gr.nlog10_ff(20, self.fft_size,
+                           
-20*math.log10(self.fft_size)-10*math.log10(power/self.fft_size))
+        sink = gr.message_sink(gr.sizeof_float * self.fft_size, self.msgq, 
True)
 
-        fg.connect (s2p, one_in_n, fft, c2mag, self.avg, log, sink)
+        fg.connect (s2p, self.one_in_n, fft, c2mag, self.avg, log, sink)
         gr.hier_block.__init__(self, fg, s2p, sink)
 
         self.win = fft_window(self, parent, size=size)
@@ -133,21 +140,22 @@
                                average=average, avg_alpha=avg_alpha, 
title=title,
                                peak_hold=peak_hold)
 
-        s2p = gr.stream_to_vector(gr.sizeof_gr_complex, fft_size)
-        one_in_n = gr.keep_one_in_n(gr.sizeof_gr_complex * fft_size,
-                                    max(1, int(sample_rate/fft_size/fft_rate)))
-        mywindow = window.blackmanharris(fft_size)
+        s2p = gr.stream_to_vector(gr.sizeof_gr_complex, self.fft_size)
+        self.one_in_n = gr.keep_one_in_n(gr.sizeof_gr_complex * self.fft_size,
+                                         max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
+        mywindow = window.blackmanharris(self.fft_size)
         power = 0
         for tap in mywindow:
             power += tap*tap
             
-        fft = gr.fft_vcc(fft_size, True, mywindow)
+        fft = gr.fft_vcc(self.fft_size, True, mywindow)
         c2mag = gr.complex_to_mag(fft_size)
         self.avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
-        log = gr.nlog10_ff(20, fft_size, 
-20*math.log10(fft_size)-10*math.log10(power/fft_size))
+        log = gr.nlog10_ff(20, self.fft_size,
+                           
-20*math.log10(self.fft_size)-10*math.log10(power/self.fft_size))
         sink = gr.message_sink(gr.sizeof_float * fft_size, self.msgq, True)
 
-        fg.connect(s2p, one_in_n, fft, c2mag, self.avg, log, sink)
+        fg.connect(s2p, self.one_in_n, fft, c2mag, self.avg, log, sink)
         gr.hier_block.__init__(self, fg, s2p, sink)
 
         self.win = fft_window(self, parent, size=size)

Index: src/python/scopesink.py
===================================================================
RCS file: /sources/gnuradio/gr-wxgui/src/python/scopesink.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/python/scopesink.py     2 Apr 2006 15:22:15 -0000       1.11
+++ src/python/scopesink.py     16 Jun 2006 06:34:53 -0000      1.12
@@ -37,10 +37,14 @@
                  size=default_scopesink_size, frame_decim=default_frame_decim,
                  v_scale=default_v_scale, t_scale=None):
         msgq = gr.msg_queue(2)         # message queue that holds at most 2 
messages
-        guts = gr.oscope_sink_f(sample_rate, msgq)
-        gr.hier_block.__init__(self, fg, guts, guts)
+        self.guts = gr.oscope_sink_f(sample_rate, msgq)
+        gr.hier_block.__init__(self, fg, self.guts, self.guts)
         self.win = scope_window(win_info (msgq, sample_rate, frame_decim,
-                                          v_scale, t_scale, guts, title), 
parent)
+                                          v_scale, t_scale, self.guts, title), 
parent)
+
+    def set_sample_rate(self, sample_rate):
+        self.guts.set_sample_rate(sample_rate)
+        self.win.info.set_sample_rate(sample_rate)
 
 class scope_sink_c(gr.hier_block):
     def __init__(self, fg, parent, title='', sample_rate=1,
@@ -48,13 +52,16 @@
                  v_scale=default_v_scale, t_scale=None):
         msgq = gr.msg_queue(2)         # message queue that holds at most 2 
messages
         c2f = gr.complex_to_float()
-        guts = gr.oscope_sink_f(sample_rate, msgq)
-        fg.connect((c2f, 0), (guts, 0))
-        fg.connect((c2f, 1), (guts, 1))
-        gr.hier_block.__init__(self, fg, c2f, guts)
+        self.guts = gr.oscope_sink_f(sample_rate, msgq)
+        fg.connect((c2f, 0), (self.guts, 0))
+        fg.connect((c2f, 1), (self.guts, 1))
+        gr.hier_block.__init__(self, fg, c2f, self.guts)
         self.win = scope_window(win_info(msgq, sample_rate, frame_decim,
-                                         v_scale, t_scale, guts, title), 
parent)
+                                         v_scale, t_scale, self.guts, title), 
parent)
         
+    def set_sample_rate(self, sample_rate):
+        self.guts.set_sample_rate(sample_rate)
+        self.win.info.set_sample_rate(sample_rate)
 
 # ========================================================================
 # This is the deprecated interface, retained for compatibility...
@@ -162,6 +169,9 @@
     def get_volts_per_div (self):
         return self.v_scale_cursor.current ()
 
+    def set_sample_rate(self, sample_rate):
+        self.sample_rate = sample_rate
+        
     def get_sample_rate (self):
         return self.sample_rate
 

Index: src/python/waterfallsink.py
===================================================================
RCS file: /sources/gnuradio/gr-wxgui/src/python/waterfallsink.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/python/waterfallsink.py 2 Apr 2006 15:22:15 -0000       1.8
+++ src/python/waterfallsink.py 16 Jun 2006 06:34:53 -0000      1.9
@@ -65,6 +65,13 @@
     def set_baseband_freq(self, baseband_freq):
         self.baseband_freq = baseband_freq
         
+    def set_sample_rate(self, sample_rate):
+        self.sample_rate = sample_rate
+        self._set_n()
+
+    def _set_n(self):
+        self.one_in_n.set_n(max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
+        
 class waterfall_sink_f(gr.hier_block, waterfall_sink_base):
     def __init__(self, fg, parent, baseband_freq=0,
                  y_per_div=10, ref_level=50, sample_rate=1, fft_size=512,
@@ -76,17 +83,17 @@
                                fft_rate=fft_rate,
                                average=average, avg_alpha=avg_alpha, 
title=title)
                                
-        s2p = gr.serial_to_parallel(gr.sizeof_float, fft_size)
-        one_in_n = gr.keep_one_in_n(gr.sizeof_float * fft_size,
-                                    max(1, int(sample_rate/fft_size/fft_rate)))
-        mywindow = window.blackmanharris(fft_size)
-        fft = gr.fft_vfc(fft_size, True, mywindow)
-        c2mag = gr.complex_to_mag(fft_size)
-        self.avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
-        log = gr.nlog10_ff(20, fft_size, -20*math.log10(fft_size))
-        sink = gr.file_descriptor_sink(gr.sizeof_float * fft_size, self.w_fd)
+        s2p = gr.serial_to_parallel(gr.sizeof_float, self.fft_size)
+        self.one_in_n = gr.keep_one_in_n(gr.sizeof_float * self.fft_size,
+                                         max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
+        mywindow = window.blackmanharris(self.fft_size)
+        fft = gr.fft_vfc(self.fft_size, True, mywindow)
+        c2mag = gr.complex_to_mag(self.fft_size)
+        self.avg = gr.single_pole_iir_filter_ff(1.0, self.fft_size)
+        log = gr.nlog10_ff(20, self.fft_size, -20*math.log10(self.fft_size))
+        sink = gr.file_descriptor_sink(gr.sizeof_float * self.fft_size, 
self.w_fd)
 
-        fg.connect (s2p, one_in_n, fft, c2mag, self.avg, log, sink)
+        fg.connect (s2p, self.one_in_n, fft, c2mag, self.avg, log, sink)
         gr.hier_block.__init__(self, fg, s2p, sink)
 
         self.win = waterfall_window(self, parent, size=size)
@@ -104,18 +111,18 @@
                                      fft_rate=fft_rate,
                                      average=average, avg_alpha=avg_alpha, 
title=title)
 
-        s2p = gr.serial_to_parallel(gr.sizeof_gr_complex, fft_size)
-        one_in_n = gr.keep_one_in_n(gr.sizeof_gr_complex * fft_size,
-                                    max(1, int(sample_rate/fft_size/fft_rate)))
-
-        mywindow = window.blackmanharris(fft_size)
-        fft = gr.fft_vcc(fft_size, True, mywindow)
-        c2mag = gr.complex_to_mag(fft_size)
-        self.avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
-        log = gr.nlog10_ff(20, fft_size, -20*math.log10(fft_size))
-        sink = gr.file_descriptor_sink(gr.sizeof_float * fft_size, self.w_fd)
+        s2p = gr.serial_to_parallel(gr.sizeof_gr_complex, self.fft_size)
+        self.one_in_n = gr.keep_one_in_n(gr.sizeof_gr_complex * self.fft_size,
+                                         max(1, 
int(self.sample_rate/self.fft_size/self.fft_rate)))
+
+        mywindow = window.blackmanharris(self.fft_size)
+        fft = gr.fft_vcc(self.fft_size, True, mywindow)
+        c2mag = gr.complex_to_mag(self.fft_size)
+        self.avg = gr.single_pole_iir_filter_ff(1.0, self.fft_size)
+        log = gr.nlog10_ff(20, self.fft_size, -20*math.log10(self.fft_size))
+        sink = gr.file_descriptor_sink(gr.sizeof_float * self.fft_size, 
self.w_fd)
 
-        fg.connect(s2p, one_in_n, fft, c2mag, self.avg, log, sink)
+        fg.connect(s2p, self.one_in_n, fft, c2mag, self.avg, log, sink)
         gr.hier_block.__init__(self, fg, s2p, sink)
 
         self.win = waterfall_window(self, parent, size=size)




reply via email to

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