use complex DFT