主要内容

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
有关FFTW库的信息,请参见www.fftw.org

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

  • 生成独立的C/ c++代码(静态库、动态链接库或可执行程序)MATLAB编码器™或生成C/ c++代码MATLAB函数块与动态仿真模块®编码器

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

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

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

    • 的代码生成MATLAB编码器codegen命令,设置CustomFFTCallback

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

    • 用于代码生成MATLAB函数通过使用仿真软件编码器,设置自定义FFT库回调

必须实现updateBuildInfo而且getNumThreads方法。

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

  • getPlanMethod

  • 而且解锁

所有方法都是静态的。

方法

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

例子

全部折叠

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

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

The MathWorks, Inc.版权所有classdefuseMyFFTW < code .fftw. standalonefftw3interface方法(静态)函数th = getNumThreads code .inline(“总是”);Th = int32(code .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中引入

Baidu
map