float FFT、特に cos 関数と sin 関数の精度が悪いと聞きました - double と比較すると数値がまったく異なります。
Cooley-Tukey FFT アルゴリズムの一部のコードを書き直したので質問します。と結果が異なります。元のプロジェクトは double を使用し、新しいプロジェクトは float です。それは私の間違いですか?そして、私はこのコードをmatlabとc ++から書きます...そして、matlabのdoubleがjavaとc + doubleのように同じであることをほとんど尋ねませんか??
float PI=3.141592;
// Make sure n is a power of 2
// if (n != (1 << m))
// throw new RuntimeException("FFT length must be power of 2");
// precompute tables
for (int i = 0; i < n / 2; i++) {
cosa[i] = cos (-2 * PI * i / n);
sina[i] =sin (-2 * PI * i / n);
}