summaryrefslogtreecommitdiff
path: root/gr-fft/lib
diff options
context:
space:
mode:
authorDoug Geiger <doug.geiger@bioradiation.net>2015-09-17 14:31:33 -0400
committerDoug Geiger <doug.geiger@bioradiation.net>2015-09-17 15:37:44 -0400
commitb25bf5daea78d9d4a7f0e1bfd56ddc36f3d015ff (patch)
tree09180d0b74164ff1c67b46df7f37b4d1ff432c7c /gr-fft/lib
parente31acebdf04de148216d1a4f5f747b0fe2250256 (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.cc11
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 {