Main Content

coder.fftw.StandaloneFFTW3Interface クラス

パッケージ:coder.fftw
スーパークラス:

生成されたコード内で FFTW 呼び出しに対して FFTW ライブラリを指定する抽象クラス

説明

coder.fftw.StandaloneFFTW3Interfaceは FFT ライブラリ コールバック クラスを定義するための抽象クラスです。FFT ライブラリ コールバック クラスは、MATLAB®高速フーリエ変換関数用に生成された C/C++ コードで使用する FFT ライブラリを指定します。FFTW ライブラリの FFT コールバック クラスを定義するには、Version 3.2 以降でcoder.fftw.StandaloneFFTW3Interfaceクラスを使用します。たとえば、useMyFFTWという名前の FFT ライブラリ コールバック クラスを定義するには、クラス定義ファイルの 1 行目に次のコードを記述します。

classdef useMyFFTW < coder.fftw.StandaloneFFTW3Interface
FFTW ライブラリの詳細については、www.fftw.orgを参照してください。

MATLAB 高速フーリエ変換関数にはfftfft2fftnifftifft2ifftnが含まれます。次の条件がすべて真の場合、コード ジェネレーターはこれらの関数に対して FFTW ライブラリの呼び出しを生成します。

  • MATLAB Coder™を使用してスタンドアロンの C/C++ コード (スタティック ライブラリ、ダイナミック リンク ライブラリ、または実行可能プログラム) を生成するか、金宝app®Coderを使用してMATLAB Functionブロックから C/C++ コードを生成する。

  • FFTW ライブラリのインストール (Version 3.2 以上) にアクセスできる。

  • coder.fftw.StandaloneFFTW3Interfaceから派生する FFT ライブラリ コールバック クラスで FFTW ライブラリ インストールを指定する。

  • 適切な構成パラメーターをコールバック クラスの名前に設定する。

    • MATLAB Codercodegenコマンドを使用したコード生成の場合、CustomFFTCallbackを設定する。

    • MATLAB Coderアプリを使用したコード生成の場合、[カスタム FFT ライブラリのコールバック]を設定する。

    • Simulink Coderを使用したMATLAB Functionブロックのコード生成の場合、[カスタム FFT ライブラリのコールバック]を設定する。

updateBuildInfoメソッドとgetNumThreadsメソッドを実装しなければなりません。

必要に応じて、次のメソッドを実装することができます。

  • getPlanMethod

  • lockおよびunlock

すべて静的メソッドです。

メソッド

getNumThreads FFTW ライブラリの呼び出しに使用するスレッド数を返す
getPlanMethod FFTW プラン メソッドを返す
lock FFTW 計画へのアクセスをロックする
unlock FFTW 計画へのアクセスをロック解除する
updateBuildInfo 特定の FFTW ライブラリにリンクするためのビルド情報を更新する

すべて折りたたむ

インストールされた特定の FFTW ライブラリを FFT ライブラリ コールバック クラスで指定します。

この例の FFT ライブラリ コールバック クラスをテンプレートとして使用します。

% copyright 2017 The MathWorks, Inc.classdefuseMyFFTW < coder.fftw.StandaloneFFTW3Interfacemethods(Static)functionth = getNumThreads coder.inline('always'); th = int32(coder.const(1));endfunctionupdateBuildInfo(buildInfo, ctx) fftwLocation ='/usr/lib/fftw'; includePath = fullfile(fftwLocation,'include'); buildInfo.addIncludePaths(includePath); libPath = fullfile(fftwLocation,'lib');%DoublelibName1 =“libfftw3-3”; [~, libExt] = ctx.getStdLibInfo(); libName1 = [libName1 libExt]; addLinkObjects(buildInfo, libName1, libPath, 1000, true, true);%SinglelibName2 ='libfftw3f-3'; [~, libExt] = ctx.getStdLibInfo(); libName2 = [libName2 libExt]; addLinkObjects(buildInfo, libName2, libPath, 1000, true, true);endendend

テンプレートを変更します。

  • useMyFFTWをコールバック クラスの名前に置き換えます。

  • FFTW のインストールで複数のスレッドを使用する場合、使用するスレッド数を返すようにgetNumThreadsメソッドを変更します。

  • updateBuildInfoメソッドで、次のように設定します。

    • fftwLocationに、ライブラリのインストール場所の絶対パスを設定する。

    • includePathfftw3.hを格納するフォルダーの絶対パスに設定する。

    • libPathに、ライブラリ ファイルが格納されるフォルダーの絶対パスを設定する。

バージョン履歴

R2017b で導入