From 9294fefab33c3374ea7d2bf8901895f338c1fff9 Mon Sep 17 00:00:00 2001
From: Matt Ettus <matt@ettus.com>
Date: Wed, 7 Sep 2011 15:25:41 -0700
Subject: logpwrfft.py -- need to average the square, not square the average. 
 Then do proper scaling (no more 3dB kludge).

---
 gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'gnuradio-core')

diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py b/gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py
index 200c4cfbe8..6f7fc520fa 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py
+++ b/gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py
@@ -54,13 +54,13 @@ class _logpwrfft_base(gr.hier_block2):
         fft = self._fft_block[0](fft_size, True, fft_window)
         window_power = sum(map(lambda x: x*x, fft_window))
 
-        c2mag = gr.complex_to_mag(fft_size)
+        c2magsq = gr.complex_to_mag_squared(fft_size)
         self._avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
-        self._log = gr.nlog10_ff(20, fft_size,
+        self._log = gr.nlog10_ff(10, fft_size,
                                  -20*math.log10(fft_size)              # Adjust for number of bins
                                  -10*math.log10(window_power/fft_size) # Adjust for windowing loss
-                                 -20*math.log10(ref_scale/2)+3.0)      # Adjust for reference scale
-        self.connect(self, self._sd, fft, c2mag, self._avg, self._log, self)
+                                 -20*math.log10(ref_scale/2))      # Adjust for reference scale
+        self.connect(self, self._sd, fft, c2magsq, self._avg, self._log, self)
 
         self._average = average
         self._avg_alpha = avg_alpha
-- 
cgit v1.2.3