diff options
author | Doug Geiger <doug.geiger@bioradiation.net> | 2015-09-17 14:31:33 -0400 |
---|---|---|
committer | Doug Geiger <doug.geiger@bioradiation.net> | 2015-09-17 15:37:44 -0400 |
commit | b25bf5daea78d9d4a7f0e1bfd56ddc36f3d015ff (patch) | |
tree | 09180d0b74164ff1c67b46df7f37b4d1ff432c7c /gr-fft/lib | |
parent | e31acebdf04de148216d1a4f5f747b0fe2250256 (diff) |
VOLKize fft_vcc_fftw
fft_vcc_fftw had several for loops for applying a windowing function: use volk_32fc_32f_multiply_32fc for these
Diffstat (limited to 'gr-fft/lib')
-rw-r--r-- | gr-fft/lib/fft_vcc_fftw.cc | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gr-fft/lib/fft_vcc_fftw.cc b/gr-fft/lib/fft_vcc_fftw.cc index 18ba56e1c1..37c0d28736 100644 --- a/gr-fft/lib/fft_vcc_fftw.cc +++ b/gr-fft/lib/fft_vcc_fftw.cc @@ -25,9 +25,9 @@ #endif #include "fft_vcc_fftw.h" -#include <gnuradio/io_signature.h> #include <math.h> #include <string.h> +#include <volk/volk.h> namespace gr { namespace fft { @@ -103,14 +103,11 @@ namespace gr { if(!d_forward && d_shift) { unsigned int offset = (!d_forward && d_shift)?(d_fft_size/2):0; int fft_m_offset = d_fft_size - offset; - for(unsigned int i = 0; i < offset; i++) // apply window - dst[i+fft_m_offset] = in[i] * d_window[i]; - for(unsigned int i = offset; i < d_fft_size; i++) // apply window - dst[i-offset] = in[i] * d_window[i]; + volk_32fc_32f_multiply_32fc(&dst[fft_m_offset], in, &d_window[0], offset); + volk_32fc_32f_multiply_32fc(&dst[0], in, &d_window[0], d_fft_size); } else { - for(unsigned int i = 0; i < d_fft_size; i++) // apply window - dst[i] = in[i] * d_window[i]; + volk_32fc_32f_multiply_32fc(&dst[0], in, &d_window[0], d_fft_size); } } else { |