Here is a patch to add windowing to
gcell/src/lib/wrapper/spu/gcs_fft_1d_r2.c , seems quick and snappy:
24a25
#include <spu_intrinsics.h>
50a52
52,53c54,69
< // FIXME pointwise multiply in *= window
< assert(0);
int i; for (i=0; i<(1 << log2_fft_length)/2; i++) { tempwin = spu_shuffle(window[i/2],zeros,pattern[(i & 0x1)]); in[i] *= tempwin; }
Seems to work, take a lot of ‘spikeyness’ out:
http://www.swigerco.com/fft_windowing.html
It will also break gr-gcell/src/qa_fft.py
–Chuck