DFT
IDFT
FFT
1 当输入向量长度为2^k时
参考《Introduction to Algorithms》chapter 30.3
每次迭代的元素赋值及辅助方法reorder
/// <summary>
/// Radix-2 Step Helper Method
/// </summary>
/// <param name="data">Sample vector.</param>
/// <param name="exponentSign">Fourier series exponent sign.</param>
/// <param name="levelSize">Level Group Size.</param>
/// <param name="k">Index inside of the level.</param>
private static void Radix2Step(Complex[] data, int exponentSign, int levelSize, int k)
{
// Twiddle Factor
var exponent = (exponentSign * k) * Math.PI / levelSize;
var w = new Complex(Math.Cos(exponent), Math.Sin(exponent));
var step = levelSize << 1;
for (var i = k; i < data.Length; i += step)
{
var ai = data[i];
var t = w