単純なテストプログラムを作成しました。このプログラムでは、Complex to Complex FTを実行し、データ1..50を生成して、配列の各インデックスの実数部と虚数部に貼り付けました。
このような操作を行うとIFFT(FFT(A))= A
それらをテストするために、ライブラリごとに異なる結果が得られています。
FFTW、元のAを取り戻すには、出力をlen(A)で割る必要があります
ただし、これを順方向に実行してからCUFFTを使用して逆方向にFFTを実行すると、元のデータに戻すために(sqrt(2)* 50)で除算する必要があるように見えます。
この余分な平方根係数はどこから来ていますか?
CUFFTのドキュメントによると:CUFFTは正規化されていないFFTを実行します。つまり、入力データセットに対して順方向FFTを実行し、続いて結果セットに対して逆方向FFTを実行すると、要素数でスケーリングされた入力に等しいデータが生成されます。データセットのサイズの逆数によるいずれかの変換のスケーリングは、ユーザーが適切と思われるように実行できるように残されています。
前もって感謝します