summaryrefslogtreecommitdiff
path: root/gr-wxgui/src/python
diff options
context:
space:
mode:
authorJohnathan Corgan2009-09-02 09:33:32 -0700
committerJohnathan Corgan2009-09-02 09:33:32 -0700
commit12b02687d8504adc6efb747a51d3c2fa77a21d63 (patch)
tree30d420ca7bf36aec579ad0329101e2574132bb37 /gr-wxgui/src/python
parent31c94994fa22a9d5f8584449edee4e86013ae916 (diff)
parent0c68c486ec09da471c27b6f4d658ae0ba8f861b7 (diff)
downloadgnuradio-12b02687d8504adc6efb747a51d3c2fa77a21d63.tar.gz
gnuradio-12b02687d8504adc6efb747a51d3c2fa77a21d63.tar.bz2
gnuradio-12b02687d8504adc6efb747a51d3c2fa77a21d63.zip
Merge branch 'wxgui' from http://gnuradio.org/git/jblum.git into master
* 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/python')
-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]