主要内容

coder.fftw.StandaloneFFTW3Interfaceclass

包:coder.fftw
超类:

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

描述

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

classdef useMyFFTW < code .fftw. standalonefftw3interface . classdef useMyFFTW < code .fftw. standalonefftw3interface . classdef
有关FFTW库的信息,请参见www.fftw.org

包括MATLAB快速傅里叶变换函数FFT.fft2fftn传输线ifft2, 和ifftn.当所有这些条件都为真时,代码生成器会为这些函数生成FFTW库调用:

  • 您可以使用独立的C / C ++代码(静态库,动态链接库或可执行程序)生成独立的C / C ++代码MATLAB编码器™或生成C/ c++代码MATLAB函数块与金宝app®编码器

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

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

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

    • 用于代码生成MATLAB编码器codegen命令,集CustomFFTCallback

    • 用于代码生成MATLAB编码器应用程序,自定义FFT库回调

    • 的代码生成MATLAB函数块用金宝app仿真软件编码器,设置自定义FFT库回调

您必须实现updateBuildInfogetNumThreads方法。

可选地,你可以实现这些方法:

  • getPlanMethod

  • 解锁

所有方法都是静态的。

方法

getNumThreads 返回用于FFTW库调用的线程数
getPlanMethod 返回FFTW计划方法
锁定进入FFTW计划
解锁 解锁对FFTW规划的访问
updateBuildInfo 更新链接到特定FFTW库的构建信息

例子

全部折叠

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

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

The MathWorks, Inc.版权所有classdefUsemyfftw 方法(静态)功能th = getNumThreads code .inline(“总是”);th = int32 (coder.const (1));结束功能UpdateBuildInfo(BuildInfo,CTX)fftwlocation =“/ usr / lib / fftw”;includePath = fullfile (fftwLocation,“包括”);buildInfo.addIncludePaths (includePath);libPath = fullfile (fftwLocation,“自由”);%双倍的libName1 =“libfftw3-3”;[~, libExt] = ctx.getStdLibInfo();libname1 = [libname1 libext];AddLinkObjects(BuildInfo,libname1,libpath,1000,true,true);%的单libName2 =“libfftw3f-3”;[~, libExt] = ctx.getStdLibInfo();libName2 = [libName2 libExt];addLinkObjects(buildInfo, libName2, libPath, 1000, true, true);结束结束结束

修改模板。

  • 取代useMyFFTW使用回调类的名称。

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

  • 在里面updateBuildInfo设置方法:

    • fftwLocation转到库安装的完整路径。

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

    • libpath.转换为包含库文件的文件夹的完整路径。

介绍了R2017b