[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] gr-radio-astronomy/src/python usrp_psr_receiver...
From: |
Marcus D. Leech |
Subject: |
[Commit-gnuradio] gr-radio-astronomy/src/python usrp_psr_receiver... |
Date: |
Sat, 01 Jul 2006 01:08:40 +0000 |
CVSROOT: /sources/gnuradio
Module name: gr-radio-astronomy
Changes by: Marcus D. Leech <mleech> 06/07/01 01:08:40
Modified files:
src/python : usrp_psr_receiver.py ra_fftsink.py
ra_stripchartsink.py
Log message:
Added autoscaling to both ra_fftsink and ra_stripchartsink.
Autoscaling is
only meaningful in ra_stripchartsink when in "parallel" mode, used for
pulsar display.
Also, changed the default sizes for the plots to be about 100 pixels
smaller.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gr-radio-astronomy/src/python/usrp_psr_receiver.py?cvsroot=gnuradio&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gr-radio-astronomy/src/python/ra_fftsink.py?cvsroot=gnuradio&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gr-radio-astronomy/src/python/ra_stripchartsink.py?cvsroot=gnuradio&r1=1.1&r2=1.2
Patches:
Index: usrp_psr_receiver.py
===================================================================
RCS file: /sources/gnuradio/gr-radio-astronomy/src/python/usrp_psr_receiver.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- usrp_psr_receiver.py 30 Jun 2006 20:11:43 -0000 1.5
+++ usrp_psr_receiver.py 1 Jul 2006 01:08:40 -0000 1.6
@@ -208,15 +208,12 @@
input_rate = self.folder_input_rate
output_rate = int(self.pulse_freq * save_i)
- print "folder sample rate ", output_rate
-
# Compute new interp and decim, based on best candidate
interp = gru.lcm(input_rate, output_rate) / input_rate
decim = gru.lcm(input_rate, output_rate) / output_rate
# Save optimized folding parameters, used later
self.folding = save_i
- print "self.folding ", self.folding
self.interp = int(interp)
self.decim = int(decim)
@@ -497,8 +494,8 @@
return self.set_doppler(kv['Doppler'])
# Position the FFT or Waterfall
- vbox.Add(self.scope.win, 10, wx.EXPAND)
- vbox.Add(self.chart.win, 10, wx.EXPAND)
+ vbox.Add(self.scope.win, 5, wx.EXPAND)
+ vbox.Add(self.chart.win, 5, wx.EXPAND)
# add control area at the bottom
self.myform = myform = form.form()
@@ -1092,7 +1089,7 @@
return(int(ntaps))
def main ():
- app = stdgui.stdapp(app_flow_graph, "RADIO ASTRONOMY PULSAR RECEIVER:
$Revision: 1.5 $", nstatus=1)
+ app = stdgui.stdapp(app_flow_graph, "RADIO ASTRONOMY PULSAR RECEIVER:
$Revision: 1.6 $", nstatus=1)
app.MainLoop()
if __name__ == '__main__':
Index: ra_fftsink.py
===================================================================
RCS file: /sources/gnuradio/gr-radio-astronomy/src/python/ra_fftsink.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ra_fftsink.py 23 May 2006 00:35:10 -0000 1.1
+++ ra_fftsink.py 1 Jul 2006 01:08:40 -0000 1.2
@@ -29,7 +29,7 @@
import math
import random
-default_ra_fftsink_size = (640,240)
+default_ra_fftsink_size = (640,140)
def default_cfunc(db,l):
@@ -47,6 +47,7 @@
self.y_per_div=y_per_div
self.sc_y_per_div=sc_y_per_div
self.ref_level = ref_level
+ self.autoscale = False
self.sc_ref_level = sc_ref_level
self.sample_rate = sample_rate
self.fft_size = fft_size
@@ -86,6 +87,9 @@
self.set_average(False)
self.win.set_peak_hold(enable)
+ def set_autoscale(self, auto):
+ self.autoscale = auto
+
def set_avg_alpha(self, avg_alpha):
self.avg_alpha = avg_alpha
@@ -237,9 +241,14 @@
def set_data (self, evt):
+ calc_min = 99e10
+ calc_max = -99e10
dB = evt.data
L = len (dB)
+ calc_min = min(dB)
+ calc_max = max(dB)
+
dB = self.ra_fftsink.cfunc(dB, L)
if self.peak_hold:
@@ -285,6 +294,11 @@
xLabel = units, yLabel = "dB")
self.Draw (graphics, xAxis=None, yAxis=self.y_range)
+ d = calc_max - calc_min
+ d *= 0.1
+ if self.ra_fftsink.autoscale == True:
+ self.y_range = self._axisInterval ('min', calc_min-d, calc_max+d)
+ else:
self.update_y_range ()
def set_peak_hold(self, enable):
@@ -304,6 +318,9 @@
# print "on_peak_hold"
self.ra_fftsink.set_peak_hold(evt.IsChecked())
+ def on_autoscale(self, evt):
+ self.ra_fftsink.set_autoscale(evt.IsChecked())
+
def on_incr_ref_level(self, evt):
# print "on_incr_ref_level"
self.ra_fftsink.set_ref_level(self.ra_fftsink.ref_level
@@ -357,6 +374,7 @@
def build_popup_menu(self):
self.id_incr_ref_level = wx.NewId()
self.id_decr_ref_level = wx.NewId()
+ self.id_autoscale = wx.NewId()
self.id_incr_y_per_div = wx.NewId()
self.id_decr_y_per_div = wx.NewId()
self.id_y_per_div_1 = wx.NewId()
@@ -369,6 +387,7 @@
self.Bind(wx.EVT_MENU, self.on_average, id=self.id_average)
self.Bind(wx.EVT_MENU, self.on_peak_hold, id=self.id_peak_hold)
+ self.Bind(wx.EVT_MENU, self.on_autoscale, id=self.id_autoscale)
self.Bind(wx.EVT_MENU, self.on_incr_ref_level,
id=self.id_incr_ref_level)
self.Bind(wx.EVT_MENU, self.on_decr_ref_level,
id=self.id_decr_ref_level)
self.Bind(wx.EVT_MENU, self.on_incr_y_per_div,
id=self.id_incr_y_per_div)
@@ -391,6 +410,7 @@
# menu.Append(self.id_decr_y_per_div, "Decr dB/div")
menu.AppendSeparator()
# we'd use RadioItems for these, but they're not supported on Mac
+ menu.AppendCheckItem(self.id_autoscale, "Autoscale")
menu.AppendCheckItem(self.id_y_per_div_1, "0.5 dB/div")
menu.AppendCheckItem(self.id_y_per_div_2, "1.0 dB/div")
menu.AppendCheckItem(self.id_y_per_div_5, "2.0 dB/div")
@@ -400,6 +420,7 @@
self.checkmarks = {
self.id_average : lambda : self.ra_fftsink.average,
self.id_peak_hold : lambda : self.ra_fftsink.peak_hold,
+ self.id_autoscale : lambda : self.ra_fftsink.autoscale,
self.id_y_per_div_1 : lambda : self.ra_fftsink.y_per_div == 0.5,
self.id_y_per_div_2 : lambda : self.ra_fftsink.y_per_div == 1.0,
self.id_y_per_div_5 : lambda : self.ra_fftsink.y_per_div == 2.0,
Index: ra_stripchartsink.py
===================================================================
RCS file: /sources/gnuradio/gr-radio-astronomy/src/python/ra_stripchartsink.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ra_stripchartsink.py 23 May 2006 00:35:57 -0000 1.1
+++ ra_stripchartsink.py 1 Jul 2006 01:08:40 -0000 1.2
@@ -30,7 +30,7 @@
import ephem
import time
-default_stripchartsink_size = (640,240)
+default_stripchartsink_size = (640,140)
global_yvalues = []
def default_cfunc(datum):
@@ -43,9 +43,10 @@
cfunc=default_cfunc, parallel=False, scaling=1.0):
# initialize common attributes
- self.y_divs = 10
+ self.y_divs = 8
self.y_per_div=y_per_div
self.ref_level = ref_level
+ self.autoscale = False
self.sample_rate = sample_rate
self.parallel = parallel
self.title = title
@@ -67,6 +68,9 @@
def set_ref_level(self, ref_level):
self.ref_level = ref_level
+ def set_autoscale(self, auto):
+ self.autoscale = auto
+
class stripchart_sink_f(gr.hier_block, stripchart_sink_base):
def __init__(self, fg, parent,
y_per_div=10, ref_level=50, sample_rate=1,
@@ -174,6 +178,13 @@
indata = evt.data
L = len (indata)
+ calc_min = min(indata)
+ calc_max = max(indata)
+ d = calc_max - calc_min
+ d *= 0.1
+ if self.stripchartsink.autoscale == True and
self.stripchartsink.parallel == True:
+ self.y_range = self._axisInterval ('min', calc_min-d, calc_max+d)
+
if (self.stripchartsink.parallel != True):
indata = self.stripchartsink.cfunc(indata)
@@ -193,6 +204,10 @@
for i in range(0,self.stripchartsink.stripsize):
if self.stripchartsink.vector[i] > 0:
avg += self.stripchartsink.vector[i]
+ if self.stripchartsink.vector[i] < calc_min:
+ calc_min = self.stripchartsink.vector[i]
+ if self.stripchartsink.vector[i] > calc_max:
+ calc_max = self.stripchartsink.vector[i]
avg /= self.stripchartsink.stripsize
markers = []
@@ -235,6 +250,8 @@
xLabel = xlab, yLabel = ylab)
self.Draw (graphics, xAxis=None, yAxis=self.y_range)
+
+ if self.stripchartsink.autoscale == False or
self.stripchartsink.parallel == False:
self.update_y_range ()
@@ -253,6 +270,9 @@
self.stripchartsink.set_ref_level(self.stripchartsink.ref_level
- self.stripchartsink.y_per_div)
+ def on_autoscale(self, evt):
+ self.stripchartsink.set_autoscale(evt.IsChecked())
+
def on_incr_y_per_div(self, evt):
divbase = self.stripchartsink.divbase
x1 = 1 * divbase
@@ -301,6 +321,7 @@
divbase=self.stripchartsink.divbase
self.id_incr_ref_level = wx.NewId()
self.id_decr_ref_level = wx.NewId()
+ self.id_autoscale = wx.NewId()
self.id_incr_y_per_div = wx.NewId()
self.id_decr_y_per_div = wx.NewId()
self.id_y_per_div_1 = wx.NewId()
@@ -311,6 +332,7 @@
self.Bind(wx.EVT_MENU, self.on_incr_ref_level,
id=self.id_incr_ref_level)
self.Bind(wx.EVT_MENU, self.on_decr_ref_level,
id=self.id_decr_ref_level)
+ self.Bind(wx.EVT_MENU, self.on_autoscale, id=self.id_autoscale)
self.Bind(wx.EVT_MENU, self.on_incr_y_per_div,
id=self.id_incr_y_per_div)
self.Bind(wx.EVT_MENU, self.on_decr_y_per_div,
id=self.id_decr_y_per_div)
self.Bind(wx.EVT_MENU, self.on_y_per_div, id=self.id_y_per_div_1)
@@ -326,6 +348,7 @@
menu.Append(self.id_incr_ref_level, "Incr Ref Level")
menu.Append(self.id_decr_ref_level, "Decr Ref Level")
menu.AppendSeparator()
+ menu.AppendCheckItem(self.id_autoscale, "Auto Scale")
# we'd use RadioItems for these, but they're not supported on Mac
v = 1.0*divbase
s = "%.3f" % v
@@ -344,6 +367,7 @@
menu.AppendCheckItem(self.id_y_per_div_20, s)
self.checkmarks = {
+ self.id_autoscale : lambda : self.stripchartsink.autoscale,
self.id_y_per_div_1 : lambda : self.stripchartsink.y_per_div ==
1*divbase,
self.id_y_per_div_2 : lambda : self.stripchartsink.y_per_div ==
2*divbase,
self.id_y_per_div_5 : lambda : self.stripchartsink.y_per_div ==
4*divbase,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] gr-radio-astronomy/src/python usrp_psr_receiver...,
Marcus D. Leech <=