MATLAB fftは実際の入力の方が速いのですか?

私はmatlab fftが実際の入力に対して2倍速いことを認識しています。しかし、matlab fftは変換が対称対称であるという事実を考慮していますか?入力が実数であるので、複素数入力の半分の情報を持つので、これは2の因数を説明することができます。おそらくそれは、共役対称性については2、複合体なしでは2成分。私は間違っていると思いますか?

1

2 答え

Matlabは、ほとんどの計算パッケージと同様、FFTWと呼ばれる高速フーリエ変換アルゴリズムのセットを実装しています。西洋で最も高速なフーリエ変換です。詳細については、こちらをご覧ください。

FFTWは、最初にインストールされたときに実際にマシン上でプリフライトを実行します。その時、プロセッサの速度とキャッシュサイズを考慮して、素因数分解が最も速くなるかどうかを調べるために一連のテスト計算を実行します。次に、シンボリックプログラムを使用して、実際の値、対称性などのように、マシン全体に固有のFFTアルゴリズムを生成します。そのため、フードの中で何が起こっているかを正確に言うのは難しいFFTWの利点を生かすことができます。

1
追加された
あなたの興味深い答えをありがとう。私はMatlabについては知らなかった。
追加された 著者 curious_nat,

いくつかのラッパー計算でN/2点の複素FFTを使用してN点の実数値FFTを実行できます。

やや効率的です:2つの実数信号を持つ場合、複雑な信号を作り、偶数部分と奇数部分の周波数領域で分離することができます。

0
追加された