Main Content

fftw

FFT アルゴリズムを決定するメソッドの定義

説明

method = fftw('planner') は、高速フーリエ変換関数 fftfft2fftnifftifft2、および ifftn が変換アルゴリズムを決定するために使用するメソッドを返します。既定のメソッドは 'estimate' で、データのサイズに基づいてアルゴリズムを決定します。

previous = fftw('planner',method) はメソッドを設定し、オプションで前のメソッドを返します。たとえば、fftw('planner','measure') は、データのサイズと型に基づいて最速のアルゴリズムを選択します。

fftinfo = fftw(wisdom) は、wisdom で指定された精度に対して現在の MATLAB® セッションで確立された最適な変換パラメーターを返します。たとえば、fftinfo = fftw('dwisdom') は現在の倍精度の変換パラメーターを保存します。

previous = fftw(wisdom,fftinfo) は、wisdom で指定された精度に対する変換アルゴリズムに fftinfo 内のパラメーターを適用します。

すべて折りたたむ

関数 fftw は、データのサイズと型に基づいて計算の最適化を試みることで、フーリエ変換関数のパフォーマンスを改善できます。

既存の倍精度の変換パラメーターをすべてクリアします。

fftw('dwisdom',[]);

現在の MATLAB® セッション内のフーリエ変換の最適化メソッドを 'measure' に設定します。

fftw('planner','measure');

乱数ベクトルを定義し、関数 fft を使用してフーリエ変換を計算します。fft は、500 行 1 列の変換計算の最適化を試みるアルゴリズムを使用します。fft の最初の呼び出しは通常より遅くなることがありますが、それ以降の呼び出しは大幅に速くなります。

X = rand(500,1);
tic; fft(X); toc;
Elapsed time is 0.064115 seconds.
tic; fft(X); toc;
Elapsed time is 0.000188 seconds.

現在の変換アルゴリズムの倍精度パラメーターを、後で使用するために変数 fftinfo に割り当てます。

fftinfo = fftw('dwisdom');

変数 fftinfo に格納されたパラメーター情報を、今後の変換関数の呼び出しに適用します。

fftw('dwisdom',fftinfo);

入力引数

すべて折りたたむ

変換パラメーターを設定するメソッド。次のいずれかとして指定します。

  • 'estimate' — 問題のサイズに基づいて推定し、最適な変換アルゴリズムを決定します。

  • 'measure' — 複数の変換を計算し、その実行時間を測定することで、より良いアルゴリズムを見つけます。

  • 'patient''measure' と比較してより幅広くテストを実行し、より良い変換アルゴリズムを求めます。ただし、パラメーターを決定するための計算コストは高くなります。

  • 'exhaustive' — 最適となる可能性の低いものも含めてすべてのテストを実行して、最適なアルゴリズムを求めます。ただし、パラメーターを決定するための計算コストは最も高くなります。

  • 'hybrid' — 次元の長さが 8192 以下の変換に 'measure'、次元の長さが 8192 より大きい変換に 'estimate' を組み合わせて使用します。

データ型: char | string

変換パラメーターの精度。'swisdom' または 'dwisdom' のいずれかとして指定します。'swisdom' オプションは単精度計算の変換パラメーターを指定し、'dwisdom' は倍精度計算のパラメーターを指定します。

データ型: char

変換パラメーター。fftw(wisdom) で返される変換パラメーターの文字配列、または空の配列 [] として指定します。空の配列 [] はデータベースをクリアします。

データ型: char

ヒント

  • fftw によって返される変換パラメーターを、各セッションで MATLAB の同じバージョンを使用する 1 台のコンピューター上に保存して適用すると非常に便利です。保存したパラメーターをコンピューター間で転送すると、両方のコンピューターのオペレーティング システムと MATLAB バージョンが同じ場合でも、パフォーマンスが低下する場合があります。

アルゴリズム

  • 変換の長さが 214 と 222 の間の 2 のべき乗数である場合、MATLAB は内部データベースから事前に読み込まれた情報を使用して、変換の計算を最適化します。正確な 2 のべき乗数の場合、コマンド fftw(wisdom,[]) を使用してデータベースをクリアしない限り、調整は実行されません。

参照

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | | | |