diff options
author | Martin Braun <martin.braun@ettus.com> | 2020-08-13 17:47:12 +0200 |
---|---|---|
committer | mormj <34754695+mormj@users.noreply.github.com> | 2020-08-17 12:04:35 -0400 |
commit | fdf04c1d1697f884fe0305881a59dfd3ded77c10 (patch) | |
tree | 1ac67415410b99b64d8dfeaa49b79bbe56b810f0 /gr-qtgui/python/qtgui | |
parent | df17aeb1ae0dc9407c1b15c4329b6331dca59e8e (diff) |
qtgui: freq_sink: Allow normalization of window functions
When switching between window functions in a live FFT GUI session, the
difference in power of the window functions is notable. This allows
asserting the 'normalize' argument of fft::window::build() by setting a
bit in the window type during construction,, or by calling a new API
call: set_fft_window_normalized().
Note: The choice to use an unused bit to set the normalization comes
from an attempt to keep the API backward compatible. Adding a new
argument to the make call would require reordering the make arguments.
This feature allows changing window types without signal power varying
due to window power differences.
Note that this does not affect scalloping loss, or processing loss from
the window. For example, the peak value of a sine tone will still vary
for different windows, because different windows distribute the power
differently, and most window functions move power to the sidelobes.
Diffstat (limited to 'gr-qtgui/python/qtgui')
4 files changed, 16 insertions, 0 deletions
diff --git a/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_c_pydoc_template.h b/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_c_pydoc_template.h index e0f09db46c..3134354a9a 100644 --- a/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_c_pydoc_template.h +++ b/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_c_pydoc_template.h @@ -54,6 +54,9 @@ static const char* __doc_gr_qtgui_freq_sink_c_set_fft_window = R"doc()doc"; static const char* __doc_gr_qtgui_freq_sink_c_fft_window = R"doc()doc"; +static const char* __doc_gr_qtgui_freq_sink_c_set_fft_window_normalized = R"doc()doc"; + + static const char* __doc_gr_qtgui_freq_sink_c_set_frequency_range = R"doc()doc"; diff --git a/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_f_pydoc_template.h b/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_f_pydoc_template.h index 3c5e2ce3d7..be6020de4a 100644 --- a/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_f_pydoc_template.h +++ b/gr-qtgui/python/qtgui/bindings/docstrings/freq_sink_f_pydoc_template.h @@ -54,6 +54,9 @@ static const char* __doc_gr_qtgui_freq_sink_f_set_fft_window = R"doc()doc"; static const char* __doc_gr_qtgui_freq_sink_f_fft_window = R"doc()doc"; +static const char* __doc_gr_qtgui_freq_sink_f_set_fft_window_normalized = R"doc()doc"; + + static const char* __doc_gr_qtgui_freq_sink_f_set_frequency_range = R"doc()doc"; diff --git a/gr-qtgui/python/qtgui/bindings/freq_sink_c_python.cc b/gr-qtgui/python/qtgui/bindings/freq_sink_c_python.cc index f1e4c1b8f0..597072bb68 100644 --- a/gr-qtgui/python/qtgui/bindings/freq_sink_c_python.cc +++ b/gr-qtgui/python/qtgui/bindings/freq_sink_c_python.cc @@ -102,6 +102,11 @@ void bind_freq_sink_c(py::module& m) .def("fft_window", &freq_sink_c::fft_window, D(freq_sink_c, fft_window)) + .def("set_fft_window_normalized", + &freq_sink_c::set_fft_window_normalized, + D(freq_sink_c, set_fft_window_normalized)) + + .def("set_frequency_range", &freq_sink_c::set_frequency_range, py::arg("centerfreq"), diff --git a/gr-qtgui/python/qtgui/bindings/freq_sink_f_python.cc b/gr-qtgui/python/qtgui/bindings/freq_sink_f_python.cc index d753986f61..5ea96f3fe7 100644 --- a/gr-qtgui/python/qtgui/bindings/freq_sink_f_python.cc +++ b/gr-qtgui/python/qtgui/bindings/freq_sink_f_python.cc @@ -102,6 +102,11 @@ void bind_freq_sink_f(py::module& m) .def("fft_window", &freq_sink_f::fft_window, D(freq_sink_f, fft_window)) + .def("set_fft_window_normalized", + &freq_sink_f::set_fft_window_normalized, + D(freq_sink_f, set_fft_window_normalized)) + + .def("set_frequency_range", &freq_sink_f::set_frequency_range, py::arg("centerfreq"), |