From e8c11c3085db4589dacce099987eef2e8df4d03f Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 1 Oct 2019 00:21:02 +0200 Subject: [PATCH] FFT Window: in place apply methods --- sdrbase/dsp/fftwindow.cpp | 24 +++++++++++++++++++++--- sdrbase/dsp/fftwindow.h | 2 ++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/sdrbase/dsp/fftwindow.cpp b/sdrbase/dsp/fftwindow.cpp index d49c5734b..bcde02ea9 100644 --- a/sdrbase/dsp/fftwindow.cpp +++ b/sdrbase/dsp/fftwindow.cpp @@ -57,18 +57,36 @@ void FFTWindow::create(Function function, int n) void FFTWindow::apply(const std::vector& in, std::vector* out) { - for(size_t i = 0; i < m_window.size(); i++) + for(size_t i = 0; i < m_window.size(); i++) { (*out)[i] = in[i] * m_window[i]; + } } void FFTWindow::apply(const std::vector& in, std::vector* out) { - for(size_t i = 0; i < m_window.size(); i++) + for(size_t i = 0; i < m_window.size(); i++) { (*out)[i] = in[i] * m_window[i]; + } +} + +void FFTWindow::apply(std::vector& in) +{ + for(size_t i = 0; i < m_window.size(); i++) { + in[i] *= m_window[i]; + } } void FFTWindow::apply(const Complex* in, Complex* out) { - for(size_t i = 0; i < m_window.size(); i++) + for(size_t i = 0; i < m_window.size(); i++) { out[i] = in[i] * m_window[i]; + } } + +void FFTWindow::apply(Complex* in) +{ + for(size_t i = 0; i < m_window.size(); i++) { + in[i] *= m_window[i]; + } +} + diff --git a/sdrbase/dsp/fftwindow.h b/sdrbase/dsp/fftwindow.h index d1e1d95ae..0b6674dde 100644 --- a/sdrbase/dsp/fftwindow.h +++ b/sdrbase/dsp/fftwindow.h @@ -42,7 +42,9 @@ public: void create(Function function, int n); void apply(const std::vector& in, std::vector* out); void apply(const std::vector& in, std::vector* out); + void apply(std::vector& in); void apply(const Complex* in, Complex* out); + void apply(Complex* in); private: std::vector m_window;