FFTW 库使用

FFTW 库使用官方网址官方文档链接中文资料 百度文库概念离散余弦变换 DCTforDiscre 离散正弦变换 DSTforDiscre 支持数据多维维数多维复数 fft 计划 事务 执行计划 voidfftw execute constfftw planplan 删除计划 voidfftw dest

概念

  • 离散余弦变换(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

(0)
上一篇 2026年3月5日 下午8:01
下一篇 2026年3月5日 下午8:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号