summaryrefslogtreecommitdiff
path: root/gr-fft/python/fft
diff options
context:
space:
mode:
Diffstat (limited to 'gr-fft/python/fft')
-rw-r--r--gr-fft/python/fft/bindings/window_python.cc5
-rw-r--r--gr-fft/python/fft/qa_window.py37
2 files changed, 40 insertions, 2 deletions
diff --git a/gr-fft/python/fft/bindings/window_python.cc b/gr-fft/python/fft/bindings/window_python.cc
index 51dd7200d1..e04a6c59df 100644
--- a/gr-fft/python/fft/bindings/window_python.cc
+++ b/gr-fft/python/fft/bindings/window_python.cc
@@ -13,8 +13,8 @@
/* If manual edits are made, the following tags should be modified accordingly. */
/* BINDTOOL_GEN_AUTOMATIC(0) */
/* BINDTOOL_USE_PYGCCXML(0) */
-/* BINDTOOL_HEADER_FILE(window.h) */
-/* BINDTOOL_HEADER_FILE_HASH(b55c3b96105267729782fc5262efa28a) */
+/* BINDTOOL_HEADER_FILE(window.h) */
+/* BINDTOOL_HEADER_FILE_HASH(22de6d8875628eec777952b4902a09e9) */
/***********************************************************************************/
#include <pybind11/complex.h>
@@ -176,6 +176,7 @@ void bind_window(py::module& m)
py::arg("type"),
py::arg("ntaps"),
py::arg("beta") = 6.76,
+ py::arg("normalize") = false,
D(window, build))
;
diff --git a/gr-fft/python/fft/qa_window.py b/gr-fft/python/fft/qa_window.py
new file mode 100644
index 0000000000..f5afd2640d
--- /dev/null
+++ b/gr-fft/python/fft/qa_window.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+#
+# Copyright 2020 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+"""
+Unit tests for fft.window
+"""
+
+import numpy
+from gnuradio import gr_unittest
+from gnuradio import fft
+
+class test_window(gr_unittest.TestCase):
+ """
+ Unit tests for fft.window
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_normwin(self):
+ """
+ Verify window normalization
+ """
+ win = fft.window.build(fft.win_type.WIN_BLACKMAN_hARRIS, 21, normalize=True)
+ power = numpy.sum([x*x for x in win])/len(win)
+ self.assertAlmostEqual(power, 1.0)
+
+if __name__ == '__main__':
+ gr_unittest.run(test_window)