tweaks to scope autoscaling
authorJosh Blum <josh@joshknows.com>
Fri, 9 Oct 2009 22:35:43 +0000 (15:35 -0700)
committerJosh Blum <josh@joshknows.com>
Fri, 9 Oct 2009 22:35:43 +0000 (15:35 -0700)
gr-wxgui/src/python/common.py

index fa11b3152fd358bc005226697faebe6857d05fbd..a03c36d8812d3a116bab45253c78a650ac3aca5d 100644 (file)
@@ -213,12 +213,13 @@ def get_min_max(samples):
        @param samples the array of real values
        @return a tuple of min, max
        """
-       scale_factor = 3
+       factor = 2.0
        mean = numpy.average(samples)
-       rms = numpy.max([scale_factor*((numpy.sum((samples-mean)**2)/len(samples))**.5), .1])
-       min_val = mean - rms
-       max_val = mean + rms
-       return min_val, max_val
+       std = numpy.std(samples)
+       fft = numpy.abs(numpy.fft.fft(samples - mean))
+       envelope = 2*numpy.max(fft)/len(samples)
+       ampl = max(std, envelope) or 0.1
+       return mean - factor*ampl, mean + factor*ampl
 
 def get_min_max_fft(fft_samps):
        """