diff options
author | Matt Ettus <matt@ettus.com> | 2011-09-07 15:25:41 -0700 |
---|---|---|
committer | Matt Ettus <matt@ettus.com> | 2011-09-07 15:25:41 -0700 |
commit | 9294fefab33c3374ea7d2bf8901895f338c1fff9 (patch) | |
tree | 5591a0d4389a9ce019c025a49548a2667169f02c /gnuradio-core | |
parent | dc16937c935f10a16de8969ca592b6019639d52b (diff) |
logpwrfft.py -- need to average the square, not square the average. Then do proper scaling (no more 3dB kludge).
Diffstat (limited to 'gnuradio-core')
-rw-r--r-- | gnuradio-core/src/python/gnuradio/blks2impl/logpwrfft.py | 8 |
1 files changed, 4 insertions, 4 deletions
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 |