summaryrefslogtreecommitdiff
path: root/gr-wxgui/src/python/common.py
diff options
context:
space:
mode:
authorJohnathan Corgan2009-09-02 14:38:37 -0700
committerJohnathan Corgan2009-09-02 14:38:37 -0700
commit72afd843cfa4037eb0a059a647c952b7e5ddf25c (patch)
treee70794c5f51fec80e90c76456ce96e27193aafa8 /gr-wxgui/src/python/common.py
parenta36c92ed48fb80c78a97a200b92b98d36a7d4c05 (diff)
parenta70c291e3cd4fc3d51f2eebb6b39cdb9d46862da (diff)
downloadgnuradio-72afd843cfa4037eb0a059a647c952b7e5ddf25c.tar.gz
gnuradio-72afd843cfa4037eb0a059a647c952b7e5ddf25c.tar.bz2
gnuradio-72afd843cfa4037eb0a059a647c952b7e5ddf25c.zip
Merge branch 'wxgui_fix' from http://gnuradio.org/git/jblum.git into master
* waterfall and fft use a common autoscale function * Fix so that the waterfall texture is initialized with a buffer of the same size.
Diffstat (limited to 'gr-wxgui/src/python/common.py')
-rw-r--r--gr-wxgui/src/python/common.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/gr-wxgui/src/python/common.py b/gr-wxgui/src/python/common.py
index d555a1f05..9c97ce1ec 100644
--- a/gr-wxgui/src/python/common.py
+++ b/gr-wxgui/src/python/common.py
@@ -137,6 +137,25 @@ def get_min_max(samples):
scale_factor = 3
mean = numpy.average(samples)
rms = numpy.max([scale_factor*((numpy.sum((samples-mean)**2)/len(samples))**.5), .1])
- min = mean - rms
- max = mean + rms
- return min, max
+ min_val = mean - rms
+ max_val = mean + rms
+ return min_val, max_val
+
+def get_min_max_fft(fft_samps):
+ """
+ Get the minimum and maximum bounds for an array of fft samples.
+ @param samples the array of real values
+ @return a tuple of min, max
+ """
+ #get the peak level (max of the samples)
+ peak_level = numpy.max(fft_samps)
+ #separate noise samples
+ noise_samps = numpy.sort(fft_samps)[:len(fft_samps)/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)
+ return min_level, max_level