概念
- 离散余弦变换(DCT for Discrete Cosine Transform)
- 离散正弦变换(DST for Discrete Sine Transform)
支持数据
- 多维维数
- 多维复数
fft计划(事务)
- 执行计划
void fftw_execute(const fftw_plan plan);
- 删除计划
void fftw_destroy_plan(fftw_plan plan);
- 清除所有计划(不建议使用)
void fftw_cleanup(void);
- 打印计划
计划属性
- FFTW_ESTIMATE
使用一个启发式(次优)计划替代真实计算
- FFTW_MEASURE
通过执行几种fft算法找到最优计划
- FFTW_PATIENT
同FFTW_MEASURE,适合更大数据量
- FFTW_EXHAUSTIVE
同FFTW_PATIENT,适合更大数据量
- FFTW_WISDOM_ONLY
智慧模式
- FFTW_DESTROY_INPUT
允许输出空间覆盖输入空间
- FFTW_PRESERVE_INPUT
输入空间在转换过程中不能被改变
正向fft
fftw_plan fftw_plan_dft_r2c(int rank, const int *n, double *in, fftw_complex *out, unsigned flags);
反向fft
fftw_plan fftw_plan_dft_c2r(int rank, const int *n, fftw_complex *in, double *out, unsigned flags);
实例代码
#include <fftw3.h> … { fftw_complex *in, *out; fftw_plan p; … in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); … fftw_execute(p); /* repeat as needed */ … fftw_destroy_plan(p); fftw_free(in); fftw_free(out); }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230317.html原文链接:https://javaforall.net
