[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r8735 - gnuradio/branches/developers/jblum/gr-wxglgui/
From: |
jblum |
Subject: |
[Commit-gnuradio] r8735 - gnuradio/branches/developers/jblum/gr-wxglgui/src/python |
Date: |
Thu, 26 Jun 2008 19:12:23 -0600 (MDT) |
Author: jblum
Date: 2008-06-26 19:12:22 -0600 (Thu, 26 Jun 2008)
New Revision: 8735
Modified:
gnuradio/branches/developers/jblum/gr-wxglgui/src/python/fftsink.py
gnuradio/branches/developers/jblum/gr-wxglgui/src/python/plotter.py
Log:
outer border and units
Modified: gnuradio/branches/developers/jblum/gr-wxglgui/src/python/fftsink.py
===================================================================
--- gnuradio/branches/developers/jblum/gr-wxglgui/src/python/fftsink.py
2008-06-27 00:35:36 UTC (rev 8734)
+++ gnuradio/branches/developers/jblum/gr-wxglgui/src/python/fftsink.py
2008-06-27 01:12:22 UTC (rev 8735)
@@ -126,6 +126,9 @@
self,
parent,
title,
+ real,
+ baseband_freq,
+ sample_rate,
y_per_div,
y_divs,
ref_level,
@@ -142,9 +145,36 @@
self.average = average
self.peak_hold = peak_hold
self.set_average = set_average
+ self.peak_vals = []
+ #determine units
+ if sample_rate > 5e9:
+ units = 'GHz'
+ power = 9
+ elif sample_rate > 5e6:
+ units = 'MHz'
+ power = 6
+ elif sample_rate > 5e3:
+ units = 'KHz'
+ power = 3
+ else:
+ units = 'Hz'
+ power = 0
+ scalar = 10**(-1*power)
#init panel and plot
wx.Panel.__init__(self, parent, -1)
- self.plotter = plotter.grid_plotter(self, title,
'Frequency(Hz)', 'Amplitude(dB)', 35, 10, 40, 60)
+ self.plotter = plotter.grid_plotter(self, title,
'Frequency(%s)'%units, 'Amplitude(dB)', 35, 10, 40, 60)
+ if real:
+ self.plotter.set_x_grid(
+ scalar*baseband_freq,
+ scalar*baseband_freq + scalar*sample_rate/2.0,
+ scalar*int(sample_rate/16),
+ )
+ else:
+ self.plotter.set_x_grid(
+ scalar*baseband_freq - scalar*sample_rate/2.0,
+ scalar*baseband_freq + scalar*sample_rate/2.0,
+ scalar*int(sample_rate/8),
+ )
#setup the box with plot and controls
self.control_panel = control_panel(self)
main_box = wx.BoxSizer(wx.HORIZONTAL)
@@ -155,12 +185,23 @@
self.update()
def plot(self, samples):
+ #peak hold calculation
+ if self.peak_hold and len(peak_vals) != len(samples):
self.peak_vals = samples
+ if self.peak_hold: self.peak_hold = numpy.maximum(samples,
self.peak_vals)
+ #plot the fft
self.plotter.set_waveform(
channel=1,
samples=samples,
offset=0.0,
+ color_spec=(0, 0, 1),
+ )
+ #plot the peak hold
+ self.plotter.set_waveform(
+ channel=2,
+ samples=self.peak_vals,
+ offset=0.0,
color_spec=(0, 1, 0),
- )
+ )
#update the plotter
self.plotter.update()
@@ -168,7 +209,7 @@
#update average
self.set_average(self.average)
#update peak hold
- #TODO
+ if not self.peak_hold: self.peak_vals = []
#update y grid
self.plotter.set_y_grid(self.ref_level-self.y_per_div*self.y_divs,
self.ref_level, self.y_per_div)
#update control panel if non-gui changes occured
@@ -309,6 +350,7 @@
title='',
peak_hold=False,
):
+ self.real = self.item_size == gr.sizeof_float
#ensure avg alpha
if avg_alpha is None: avg_alpha = 2.0/fft_rate
#init
@@ -333,7 +375,10 @@
#create window
self.win = fft_window(
parent=parent,
- title=title,
+ title=title,
+ real = self.real,
+ baseband_freq=baseband_freq,
+ sample_rate=sample_rate,
y_per_div=y_per_div,
y_divs=y_divs,
ref_level=ref_level,
@@ -342,12 +387,8 @@
set_average=fft.set_average,
)
#setup x grid and setup the input watcher
- if self.item_size == gr.sizeof_float:
- self.win.plotter.set_x_grid(baseband_freq,
baseband_freq + sample_rate/2.0, int(sample_rate/16))
- input_watcher(fft.msgq, self.win.plot)
- else:
- self.win.plotter.set_x_grid(baseband_freq -
sample_rate/2.0, baseband_freq + sample_rate/2.0, int(sample_rate/8))
- input_watcher(fft.msgq, self._handle_complex_samples)
+ if self.real: input_watcher(fft.msgq, self.win.plot)
+ else: input_watcher(fft.msgq, self._handle_complex_samples)
def _handle_complex_samples(self, samples):
"""!
@@ -374,8 +415,8 @@
input_rate = 20.48e3
# Generate a complex sinusoid
- src1 = gr.sig_source_c (input_rate, gr.GR_SIN_WAVE, 2e3, 1)
- #src1 = gr.sig_source_c (input_rate, gr.GR_CONST_WAVE, 5.75e3,
1)
+ #src1 = gr.sig_source_c (input_rate, gr.GR_SIN_WAVE, 2e3, 1)
+ src1 = gr.sig_source_c (input_rate, gr.GR_CONST_WAVE, 5.75e3, 1)
# We add these throttle blocks so that this demo doesn't
# suck down all the CPU available. Normally you wouldn't use
these.
@@ -388,8 +429,8 @@
self.connect(src1, thr1, sink1)
- src2 = gr.sig_source_f (input_rate, gr.GR_SIN_WAVE, 2e3, 1)
- #src2 = gr.sig_source_f (input_rate, gr.GR_CONST_WAVE, 5.75e3,
1)
+ #src2 = gr.sig_source_f (input_rate, gr.GR_SIN_WAVE, 2e3, 1)
+ src2 = gr.sig_source_f (input_rate, gr.GR_CONST_WAVE, 5.75e3, 1)
thr2 = gr.throttle(gr.sizeof_float, input_rate)
sink2 = fft_sink_f (frame, title="Real Data",
fft_size=fft_size*2,
sample_rate=input_rate,
baseband_freq=100e3,
@@ -405,7 +446,7 @@
vbox = wx.BoxSizer(wx.VERTICAL)
test_app_block(frame, vbox)
frame.SetSizerAndFit(vbox)
- frame.SetSize(wx.Size(700, 300))
+ frame.SetSize(wx.Size(800, 600))
frame.Show()
app.MainLoop()
Modified: gnuradio/branches/developers/jblum/gr-wxglgui/src/python/plotter.py
===================================================================
--- gnuradio/branches/developers/jblum/gr-wxglgui/src/python/plotter.py
2008-06-27 00:35:36 UTC (rev 8734)
+++ gnuradio/branches/developers/jblum/gr-wxglgui/src/python/plotter.py
2008-06-27 01:12:22 UTC (rev 8735)
@@ -192,7 +192,7 @@
self._draw_rect(0, 0, self.padding_left, self.height)
##################################################
- # Draw Border
+ # Draw Inner Border
##################################################
glColor3f(*GRID_LINE_COLOR_SPEC)
glBegin(GL_LINE_LOOP)
@@ -203,6 +203,17 @@
glEnd()
##################################################
+ # Draw Outter Border
+ ##################################################
+ glColor3f(*GRID_LINE_COLOR_SPEC)
+ glBegin(GL_LINE_LOOP)
+ glVertex3f(1, 1, 0)
+ glVertex3f(self.width, 1, 0)
+ glVertex3f(self.width, self.height, 0)
+ glVertex3f(1, self.height, 0)
+ glEnd()
+
+ ##################################################
# Draw Grid X
##################################################
for tick in self._get_ticks(self.x_min, self.x_max,
self.x_step):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r8735 - gnuradio/branches/developers/jblum/gr-wxglgui/src/python,
jblum <=