刚才重新用fftw3写了个helloword,经测试结果正确。代码如下:

fftw_test.c

#include <fftw3.h>
#include <stdio.h>

#define N 3
#define ELEM(r,c) (r*N+c)

int showresult(fftw_complex* in, fftw_complex* out)
{
    int i, j;
    printf("In:\n");
    for (i=0; i<N; i++) {
        for (j=0; j<N; j++) {
            printf("%lf\t", in[ELEM(i, j)][0]);
        }
        printf("\n");
    }
    printf("Out:\n");
    for (i=0; i<N; i++) {
        for (j=0; j<N; j++) {
            printf("%lf\t", out[ELEM(i, j)][0]);
        }
        printf("\n");
    }
    return 1;
}

int main()
{
    fftw_complex *in, *out;
    fftw_plan p;
    int i, j;

    // 分配存储空间
    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N * N);
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N * N);

    // 设置变换计划
    p = fftw_plan_dft_2d(N, N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);

    // 设置测试数据
    for (i=0; i<N; i++) {
        for (j=0; j<N; j++) {
            in[ELEM(i, j)][0] = 1;
            in[ELEM(i, j)][1] = 0;
        }
    }
    in[ELEM(1, 2)][0] = 5;
    in[ELEM(2, 2)][0] = 3;

    // 执行变换
    fftw_execute(p); /**//* repeat as needed */

    // 显示测试结果
    showresult(in, out);

    // 释放内存
    fftw_destroy_plan(p);
    fftw_free(in);
    fftw_free(out);

    return 1;
}

makefile文件:

all: fft_test

fft_test: fft_test.c
    gcc -o fft_test fft_test.c -lfftw3

clean:
    rm -f fft_test

输出结果:

In:
1.000000    1.000000    1.000000    
1.000000    1.000000    5.000000    
1.000000    1.000000    3.000000    
Out:
15.000000    -3.000000    -3.000000    
-3.000000    3.000000    0.000000    
-3.000000    0.000000    3.000000    

转载于:https://www.cnblogs.com/nicebear/archive/2008/05/03/1180289.html

使用FFTW3做二维DFT的示例代码相关推荐

  1. python制作微信二维码_Python提取支付宝和微信支付二维码的示例代码

    支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...

  2. python支付程序源码_Python提取支付宝和微信支付二维码的示例代码

    支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...

  3. 二维离散变换由c语言编写,C++实现离散余弦变换(参数为二维指针)(示例代码)...

    http://www.cnblogs.com/scut-linmaojiang/p/5013590.html 写在前面 到目前为止已经阅读了相当一部分的网格水印等方面的论文了,但是论文的实现进度还没有 ...

  4. 第4章 Python 数字图像处理(DIP) - 频率域滤波7 - 二维DFT和IDFT的一些性质 - 傅里叶频谱和相角

    目录 二维DFT和IDFT的一些性质 傅里叶频谱和相角 二维DFT和IDFT的一些性质 傅里叶频谱和相角 F(u,v)=R(u,v)+jI(u,v)=∣F(u,v)∣ejϕ(u,v)(4.86)F(u ...

  5. 第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性

    目录 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 平移和旋转 周期性 对称性 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 Δu=1MΔT(4.69)\Delta u = \ ...

  6. 教你用Python做二维码

    今天教大家做二维码,要用amzqr这个库而且不止普通二维码,还有花样二维码 老规矩先pip pip install amzqr 先给大家看一下示例(本库所有命令都在命令行里运行) amzqr hell ...

  7. 怎么做二维码?二维码制作的简单方法

    二维码在日常的用途非常的广泛,比如付款二维码,信息统计二维码,问卷调查二维码,网页跳转二维码...都是常见的二维码类型.通过扫码识别来进行操作,让生活更加的便利,那么这些二维码是如何制作出来的呢?下面 ...

  8. 公众号文章链接怎么做二维码?在线生成链接二维码的方法

    公众号是现在品牌运营时必备的一个渠道,通过不断地发表公众号推文来提高自己的品牌力,那么如果想要将一篇公众号文章生成二维码(二维码在线制作-二维码生成器-音视频二维码制作工具-机制熊二维码)后分享给他人 ...

  9. 第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理

    目录 二维DFT和IDFT的一些性质 二维离散卷积定理 二维离散傅里叶变换性质的小结 二维DFT和IDFT的一些性质 二维离散卷积定理 二维循环卷积表达式: (f⋆h)(x,y)=∑m=0M−1∑n= ...

最新文章

  1. Java -- JDBC 学习--通过Statement进行数据库更新操作
  2. C# 生成随机字符串
  3. 【一周入门MySQL—5】
  4. linux卸载pci驱动,linux的PCI驱动固件问题
  5. lambda理解与应用
  6. leetcode 144. Binary Tree Preorder Traversal ----- java
  7. 线性基——数集压缩自动机
  8. java毕业设计蔚蓝在线学习平台源码+lw文档+mybatis+系统+mysql数据库+调试
  9. matlab中三种原油问题,基于MATLAB联合站原油加热模糊控制(程序)
  10. Python鼠标拖动曲线(matplotlib)
  11. python32位与62位可以随便装吗_电脑32位和64位可以随便换吗???
  12. Excel学习日记:L1-excel入门
  13. 记可视化项目代码设计的心路历程以及理解
  14. homebrew Error: qt: unknown version :mountain_lion
  15. Autodesk Revit 2022 三维建模软件中文版
  16. win10清除快速访问-不留下痕迹
  17. 美国政府正在亲手扼杀互联网创新
  18. EPSON ESC/POS指令
  19. php蜘蛛强制劫持,d58.net最新php蜘蛛劫持程序_d58最新劫持程序
  20. 软件工程·UI设计原则专题

热门文章

  1. jquery获取php生成的元素,jquery怎么生成元素
  2. 数据库管理学习笔记(一)——实体关系建模
  3. 【Python数据分析】数据挖掘建模——分类与预测——人工神经网络
  4. Machine Learning Yearning 中文翻译稿
  5. YOLOv2检测过程的Tensorflow实现
  6. oracle bookauthor,Oracle 聚簇(征集)
  7. 判断坐标位置C语言,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
  8. Autofs自动挂在实现
  9. docker容器的跨主机访问
  10. 云数据的安全性不容忽视