diff options
author | Josh Blum | 2009-08-31 18:18:22 -0700 |
---|---|---|
committer | Josh Blum | 2009-08-31 18:18:22 -0700 |
commit | 0c68c486ec09da471c27b6f4d658ae0ba8f861b7 (patch) | |
tree | d77864cb2bbb8e2d099d9d2d05da2ee823c53045 /gr-wxgui/src | |
parent | 1aa216df204197b4849581dd4f42b2e7680eb72f (diff) | |
download | gnuradio-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.py | 20 | ||||
-rw-r--r-- | gr-wxgui/src/python/scopesink_gl.py | 2 |
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] |