主要内容

coder.fftw.StandaloneFFTW3Interface 类

命名空间: coder.fftw

用于指定生成代码中 FFTW 调用的 FFTW 库的抽象类

描述

coder.fftw.StandaloneFFTW3Interface 是用于定义 FFT 库回调类的抽象类。FFT 库回调类指定用于为 MATLAB® 快速傅里叶变换函数生成的 C/C++ 代码的 FFT 库。要为 FFTW 库(版本 3.2 或更高版本)定义 FFT 回调类,请使用 coder.fftw.StandaloneFFTW3Interface 类。例如,要定义名为 useMyFFTW 的 FFT 库回调类,请将此行作为类定义文件的第一行:

classdef useMyFFTW < coder.fftw.StandaloneFFTW3Interface
有关 FFTW 库的信息,请参阅 www.fftw.org

MATLAB 快速傅里叶变换函数包括 fftfft2fftnifftifft2ifftn。当所有以下条件都成立时,代码生成器会为这些函数生成 FFTW 库调用:

  • 您使用 MATLAB Coder™ 生成独立的 C/C++ 代码(静态库、动态链接库或可执行程序),或使用 Simulink® CoderMATLAB Function 模块生成 C/C++ 代码。

  • 您可以访问 FFTW 库安装(版本 3.2 或更高版本)。

  • 您在从 coder.fftw.StandaloneFFTW3Interface 派生的 FFT 库回调类中指定 FFTW 库安装。

  • 您将适当的配置参数设置为回调类的名称。

    • 对于使用 MATLAB Coder codegen 命令的代码生成,设置 CustomFFTCallback

    • 对于使用 MATLAB Coder 的代码生成,设置自定义 FFT 库回调

    • 对于使用 Simulink CoderMATLAB Function 模块进行的代码生成,设置自定义 FFT 库回调

您必须实现 updateBuildInfogetNumThreads 方法。

(可选)您可以实现以下方法:

  • getPlanMethod

  • lockunlock

所有方法均为静态方法。

方法

全部展开

示例

全部折叠

在 FFT 库回调类中指定特定的已安装 FFTW 库。

使用此示例 FFT 库回调类作为模板。

% copyright 2017 The MathWorks, Inc.

classdef useMyFFTW < coder.fftw.StandaloneFFTW3Interface
     
    methods (Static)
        function th = getNumThreads
            coder.inline('always');
            th = int32(coder.const(1));
        end
                
        function updateBuildInfo(buildInfo, ctx)
            fftwLocation = '/usr/lib/fftw';
            includePath = fullfile(fftwLocation, 'include');
            buildInfo.addIncludePaths(includePath);
            libPath = fullfile(fftwLocation, 'lib');
            
            %Double
            libName1 = 'libfftw3-3';
            [~, libExt] = ctx.getStdLibInfo();
            libName1 = [libName1 libExt];
            addLinkObjects(buildInfo, libName1, libPath, 1000, true, true);
            
            %Single
             libName2 = 'libfftw3f-3';
            [~, libExt] = ctx.getStdLibInfo();
            libName2 = [libName2 libExt];
            addLinkObjects(buildInfo, libName2, libPath, 1000, true, true);
        end
    end           
end

修改该模板。

  • useMyFFTW 替换为您的回调类的名称。

  • 如果您的 FFTW 安装使用多个线程,请修改 getNumThreads 方法以返回您要使用的线程数。

  • updateBuildInfo 方法中,进行以下设置:

    • fftwLocation 设置为库的安装的完整路径。

    • includePath 设置为包含 fftw3.h 的文件夹的完整路径。

    • libPath 设置为包含库文件的文件夹的完整路径。

版本历史记录

在 R2017b 中推出