Move FFT bit-reversal to complex<int16_t> -> complex<float> copy. Change window so that adjacent bins have constant(-ish) gain. Change window to float. Change time domain samples to accumulate at even intervals over the FFT interval.