FFTW 库使用

官方网址
官方文档链接
中文资料-百度文库

概念

支持数据

  • 多维维数
  • 多维复数

fft计划(事务)

  • 执行计划

    void fftw_execute(const fftw_plan plan);

  • 删除计划

    void fftw_destroy_plan(fftw_plan plan);

  • 清除所有计划(不建议使用)

    void fftw_cleanup(void);

  • 打印计划

    void fftw_fprint_plan(const fftw_plan plan, FILE *output_file);
    void fftw_print_plan(const fftw_plan plan);
    char *fftw_sprint_plan(const fftw_plan plan);

计划属性

  • 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);  
}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值