summaryrefslogtreecommitdiff
path: root/gr-wxgui/src
diff options
context:
space:
mode:
authorJosh Blum2009-08-31 18:18:22 -0700
committerJosh Blum2009-08-31 18:18:22 -0700
commit0c68c486ec09da471c27b6f4d658ae0ba8f861b7 (patch)
treed77864cb2bbb8e2d099d9d2d05da2ee823c53045 /gr-wxgui/src
parent1aa216df204197b4849581dd4f42b2e7680eb72f (diff)
downloadgnuradio-0c68c486ec09da471c27b6f4d658ae0ba8f861b7.tar.gz
gnuradio-0c68c486ec09da471c27b6f4d658ae0ba8f861b7.tar.bz2
gnuradio-0c68c486ec09da471c27b6f4d658ae0ba8f861b7.zip
Modified log power fft block so ref scale is peak to peak.
Tweaked fft sink autoscale routine to come up with better numbers. Modified scope sink ac couple block to use constant tap. The previous tap calculation would cause failure for very small sample rates.
Diffstat (limited to 'gr-wxgui/src')
-rw-r--r--gr-wxgui/src/python/fft_window.py20
-rw-r--r--gr-wxgui/src/python/scopesink_gl.py2
2 files changed, 13 insertions, 9 deletions
diff --git a/gr-wxgui/src/python/fft_window.py b/gr-wxgui/src/python/fft_window.py
index 0529e6a5d..4c575f1a6 100644
--- a/gr-wxgui/src/python/fft_window.py
+++ b/gr-wxgui/src/python/fft_window.py
@@ -256,15 +256,19 @@ class fft_window(wx.Panel, pubsub.pubsub):
if not len(self.samples): return
#get the peak level (max of the samples)
peak_level = numpy.max(self.samples)
- #get the noise floor (averge the smallest samples)
- noise_floor = numpy.average(numpy.sort(self.samples)[:len(self.samples)/4])
- #padding
- noise_floor -= abs(noise_floor)*.5
- peak_level += abs(peak_level)*.1
- #set the reference level to a multiple of y divs
- self[REF_LEVEL_KEY] = self[Y_DIVS_KEY]*math.ceil(peak_level/self[Y_DIVS_KEY])
+ #separate noise samples
+ noise_samps = numpy.sort(self.samples)[:len(self.samples)/2]
+ #get the noise floor
+ noise_floor = numpy.average(noise_samps)
+ #get the noise deviation
+ noise_dev = numpy.std(noise_samps)
+ #determine the maximum and minimum levels
+ max_level = peak_level
+ min_level = noise_floor - abs(2*noise_dev)
#set the range to a clean number of the dynamic range
- self[Y_PER_DIV_KEY] = common.get_clean_num((peak_level - noise_floor)/self[Y_DIVS_KEY])
+ self[Y_PER_DIV_KEY] = common.get_clean_num(1+(max_level - min_level)/self[Y_DIVS_KEY])
+ #set the reference level to a multiple of y per div
+ self[REF_LEVEL_KEY] = self[Y_PER_DIV_KEY]*round(.5+max_level/self[Y_PER_DIV_KEY])
def _reset_peak_vals(self, *args): self.peak_vals = EMPTY_TRACE
diff --git a/gr-wxgui/src/python/scopesink_gl.py b/gr-wxgui/src/python/scopesink_gl.py
index b4ae0f339..a5e3ca3ce 100644
--- a/gr-wxgui/src/python/scopesink_gl.py
+++ b/gr-wxgui/src/python/scopesink_gl.py
@@ -50,7 +50,7 @@ class ac_couple_block(gr.hier_block2):
self.connect(self, lpf, mute, (sub, 1))
#subscribe
controller.subscribe(ac_couple_key, lambda x: mute.set_mute(not x))
- controller.subscribe(sample_rate_key, lambda x: lpf.set_taps(2.0/x))
+ controller.subscribe(sample_rate_key, lambda x: lpf.set_taps(0.05))
#initialize
controller[ac_couple_key] = ac_couple
controller[sample_rate_key] = controller[sample_rate_key]