diff options
author | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
commit | 254fe5e89403d4de1fa6663d09efdf946996aff3 (patch) | |
tree | 62877d7ac7fdedf6c397c51e22ac6f97eba97ddf /gr-fft/python/fft | |
parent | 896d1c9da31963ecf5b0d90942c2af51ca998a69 (diff) | |
parent | 5ad935c3a3dd46ce2860b13e2b774e4841784616 (diff) |
Merge remote-tracking branch 'origin/next' into merge_next
Diffstat (limited to 'gr-fft/python/fft')
-rw-r--r-- | gr-fft/python/fft/CMakeLists.txt | 3 | ||||
-rw-r--r-- | gr-fft/python/fft/__init__.py | 8 | ||||
-rw-r--r-- | gr-fft/python/fft/logpwrfft.py | 13 | ||||
-rw-r--r--[-rwxr-xr-x] | gr-fft/python/fft/qa_fft.py | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | gr-fft/python/fft/qa_goertzel.py | 40 |
5 files changed, 37 insertions, 29 deletions
diff --git a/gr-fft/python/fft/CMakeLists.txt b/gr-fft/python/fft/CMakeLists.txt index b3ada6b707..acf81ca050 100644 --- a/gr-fft/python/fft/CMakeLists.txt +++ b/gr-fft/python/fft/CMakeLists.txt @@ -25,7 +25,6 @@ GR_PYTHON_INSTALL( __init__.py logpwrfft.py DESTINATION ${GR_PYTHON_DIR}/gnuradio/fft - COMPONENT "fft_python" ) ######################################################################## @@ -44,6 +43,6 @@ if(ENABLE_TESTING) file(GLOB py_qa_test_files "qa_*.py") foreach(py_qa_test_file ${py_qa_test_files}) get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE) - GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file}) + GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} -B ${py_qa_test_file}) endforeach(py_qa_test_file) endif(ENABLE_TESTING) diff --git a/gr-fft/python/fft/__init__.py b/gr-fft/python/fft/__init__.py index 1864353ed1..2e110f5371 100644 --- a/gr-fft/python/fft/__init__.py +++ b/gr-fft/python/fft/__init__.py @@ -22,11 +22,15 @@ ''' Fourier-transform blocks and related functions. ''' + +from __future__ import absolute_import +from __future__ import unicode_literals + import os try: - from fft_swig import * + from .fft_swig import * except ImportError: dirname, filename = os.path.split(os.path.abspath(__file__)) __path__.append(os.path.join(dirname, "..", "..", "swig")) - from fft_swig import * + from .fft_swig import * diff --git a/gr-fft/python/fft/logpwrfft.py b/gr-fft/python/fft/logpwrfft.py index 1ed9d6cacb..3c568b67e4 100644 --- a/gr-fft/python/fft/logpwrfft.py +++ b/gr-fft/python/fft/logpwrfft.py @@ -1,3 +1,5 @@ +from __future__ import division +from __future__ import unicode_literals # # Copyright 2008 Free Software Foundation, Inc. # @@ -23,8 +25,8 @@ from gnuradio import gr from gnuradio import blocks import sys, math -import fft_swig as fft -from fft_swig import window +from . import fft_swig as fft +from .fft_swig import window try: from gnuradio import filter @@ -63,14 +65,14 @@ class _logpwrfft_base(gr.hier_block2): if win is None: win = window.blackmanharris fft_window = win(fft_size) fft = self._fft_block[0](fft_size, True, fft_window) - window_power = sum(map(lambda x: x*x, fft_window)) + window_power = sum([x*x for x in fft_window]) c2magsq = blocks.complex_to_mag_squared(fft_size) self._avg = filter.single_pole_iir_filter_ff(1.0, fft_size) self._log = blocks.nlog10_ff(10, fft_size, -20*math.log10(fft_size) # Adjust for number of bins - -10*math.log10(float(window_power)/fft_size) # Adjust for windowing loss - -20*math.log10(float(ref_scale)/2)) # Adjust for reference scale + -10*math.log10(float(window_power) / fft_size) # Adjust for windowing loss + -20*math.log10(float(ref_scale) / 2)) # Adjust for reference scale self.connect(self, self._sd, fft, c2magsq, self._avg, self._log, self) self._average = average @@ -173,4 +175,3 @@ class logpwrfft_c(_logpwrfft_base): _name = "logpwrfft_c" _item_size = gr.sizeof_gr_complex _fft_block = (fft.fft_vcc, ) - diff --git a/gr-fft/python/fft/qa_fft.py b/gr-fft/python/fft/qa_fft.py index db3ca7778d..b1c44f2809 100755..100644 --- a/gr-fft/python/fft/qa_fft.py +++ b/gr-fft/python/fft/qa_fft.py @@ -19,6 +19,8 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # +from __future__ import division + from gnuradio import gr, gr_unittest, fft, blocks # Note: Octave code to verify these results: diff --git a/gr-fft/python/fft/qa_goertzel.py b/gr-fft/python/fft/qa_goertzel.py index c2c5c565e7..ebd272cb22 100755..100644 --- a/gr-fft/python/fft/qa_goertzel.py +++ b/gr-fft/python/fft/qa_goertzel.py @@ -20,6 +20,8 @@ # Boston, MA 02110-1301, USA. # +from __future__ import division + from math import pi, cos from gnuradio import gr, gr_unittest, fft, blocks @@ -36,30 +38,30 @@ class test_goertzel(gr_unittest.TestCase): return [cos(2*pi*x*freq/rate) for x in range(rate)] def transform(self, src_data, rate, freq): - src = blocks.vector_source_f(src_data, False) + src = blocks.vector_source_f(src_data, False) dft = fft.goertzel_fc(rate, rate, freq) - dst = blocks.vector_sink_c() - self.tb.connect(src, dft, dst) - self.tb.run() - return dst.data() + dst = blocks.vector_sink_c() + self.tb.connect(src, dft, dst) + self.tb.run() + return dst.data() def test_001(self): # Measure single tone magnitude - rate = 8000 - freq = 100 - bin = freq - src_data = self.make_tone_data(rate, freq) - expected_result = 0.5 - actual_result = abs(self.transform(src_data, rate, bin)[0]) - self.assertAlmostEqual(expected_result, actual_result, places=4) + rate = 8000 + freq = 100 + bin = freq + src_data = self.make_tone_data(rate, freq) + expected_result = 0.5 + actual_result = abs(self.transform(src_data, rate, bin)[0]) + self.assertAlmostEqual(expected_result, actual_result, places=4) def test_002(self): # Measure off frequency magnitude - rate = 8000 - freq = 100 - bin = freq/2 - src_data = self.make_tone_data(rate, freq) - expected_result = 0.0 - actual_result = abs(self.transform(src_data, rate, bin)[0]) - self.assertAlmostEqual(expected_result, actual_result, places=4) + rate = 8000 + freq = 100 + bin = freq / 2 + src_data = self.make_tone_data(rate, freq) + expected_result = 0.0 + actual_result = abs(self.transform(src_data, rate, bin)[0]) + self.assertAlmostEqual(expected_result, actual_result, places=4) if __name__ == '__main__': gr_unittest.run(test_goertzel, "test_goertzel.xml") |