FFT (complex) works well. TODO: needs smoothing