C#でDFT
Fastの方でもなくタクティクスの方でもない離散フーリエ変換(DFT: Discrete Fourier transform)をC#で。
(式の画像はWikipediaから拝借しました。)
この級数に展開された式を、オイラーの公式を使って求めた式をコードにすると↓のようになります。
for (int k = 0; k < N; k++) { for (int n = 0; n < N; n++) { re[k] += data[n] * Math.Cos(-2 * Math.PI * k * n / N); im[k] += data[n] * Math.Sin(-2 * Math.PI * k * n / N) * (-1); } }