Main Content

fftw

定义用来确定 FFT 算法的方法

说明

method = fftw('planner') 返回快速傅里叶变换函数 fftfft2fftnifftifft2ifftn 用来确定变换算法的方法。默认方法为 'estimate',它基于数据的大小确定变换算法。

示例

previous = fftw('planner',method) 设置方法,还可以选择性地返回上一种方法。例如,fftw('planner','measure') 基于数据的大小和类型选择最快的算法。

示例

fftinfo = fftw(wisdom) 返回当前 MATLAB® 会话中为 wisdom 中指定的精度确定的最佳变换参数。例如,fftinfo = fftw('dwisdom') 保存当前双精度变换参数。

示例

previous = fftw(wisdom,fftinfo)fftinfo 中的参数应用于变换算法以实现 wisdom 中指定的精度。

示例

全部折叠

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' - 将 'measure''estimate' 结合使用,前者用于维度长度等于或小于 8192 的变换,后者用于维度长度大于 8192 的变换。

数据类型: char | string

变换参数的精度,指定为 'swisdom''dwisdom'。选项 'swisdom' 指定单精度计算的变换参数,'dwisdom' 指定双精度计算的变换参数。

数据类型: char

变换参数,指定为由 fftw(wisdom) 返回的变换参数组成的字符数组或空数组 []。空数组 [] 将清除数据库。

数据类型: char

提示

  • 对于 fftw 返回的变换参数,当它们在同一台计算机上保存和应用,且每个会话都使用同一版本的 MATLAB 时,最为有用。在计算机之间传输保存的参数可能会导致性能下降,即使两台计算机具有相同的操作系统和 MATLAB 版本。

算法

  • 如果变换长度是 2 的幂(介于 214 和 222 之间),MATLAB 会使用其内部数据库中预先加载的信息来优化变换计算。不会对精确的 2 次幂执行调优,除非您使用命令 fftw(wisdom,[]) 清除数据库。

参考

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |