RosettaCode は、ここでCooley-Tukey FFT アルゴリズムの簡単な実装を提供します。質問は次のとおりで、数学およびプログラミングの観点からのものです。プログラムの入力が信号のスペクトルであり、そのようなスペクトルを持つ信号を生成したいとします。正しければ、入力スペクトルの逆 FFT を取得する必要があります。
RosettaCode によって提供されるコードは次のとおりです。
// inverse fft (in-place)
void ifft(CArray& x)
{
// conjugate the complex numbers
x = x.apply(std::conj);
// forward fft
fft( x );
// conjugate the complex numbers again
x = x.apply(std::conj);
// scale the numbers
x /= x.size();
}
ただし、これは 1 つの信号しか生成できません。ただし、複数の信号が同じスペクトルを持つ場合があります。では、これらの異なる信号を生成できるようにパラメータを追加するにはどうすればよいでしょうか?