使用FFTW3做二维DFT的示例代码
刚才重新用fftw3写了个helloword,经测试结果正确。代码如下:
fftw_test.c
#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文件:
fft_test: fft_test.c
gcc -o fft_test fft_test.c -lfftw3
clean:
rm -f fft_test
输出结果:
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的示例代码相关推荐
- python制作微信二维码_Python提取支付宝和微信支付二维码的示例代码
支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...
- python支付程序源码_Python提取支付宝和微信支付二维码的示例代码
支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...
- 二维离散变换由c语言编写,C++实现离散余弦变换(参数为二维指针)(示例代码)...
http://www.cnblogs.com/scut-linmaojiang/p/5013590.html 写在前面 到目前为止已经阅读了相当一部分的网格水印等方面的论文了,但是论文的实现进度还没有 ...
- 第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 ...
- 第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性
目录 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 平移和旋转 周期性 对称性 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 Δu=1MΔT(4.69)\Delta u = \ ...
- 教你用Python做二维码
今天教大家做二维码,要用amzqr这个库而且不止普通二维码,还有花样二维码 老规矩先pip pip install amzqr 先给大家看一下示例(本库所有命令都在命令行里运行) amzqr hell ...
- 怎么做二维码?二维码制作的简单方法
二维码在日常的用途非常的广泛,比如付款二维码,信息统计二维码,问卷调查二维码,网页跳转二维码...都是常见的二维码类型.通过扫码识别来进行操作,让生活更加的便利,那么这些二维码是如何制作出来的呢?下面 ...
- 公众号文章链接怎么做二维码?在线生成链接二维码的方法
公众号是现在品牌运营时必备的一个渠道,通过不断地发表公众号推文来提高自己的品牌力,那么如果想要将一篇公众号文章生成二维码(二维码在线制作-二维码生成器-音视频二维码制作工具-机制熊二维码)后分享给他人 ...
- 第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理
目录 二维DFT和IDFT的一些性质 二维离散卷积定理 二维离散傅里叶变换性质的小结 二维DFT和IDFT的一些性质 二维离散卷积定理 二维循环卷积表达式: (f⋆h)(x,y)=∑m=0M−1∑n= ...
最新文章
- Java -- JDBC 学习--通过Statement进行数据库更新操作
- C# 生成随机字符串
- 【一周入门MySQL—5】
- linux卸载pci驱动,linux的PCI驱动固件问题
- lambda理解与应用
- leetcode 144. Binary Tree Preorder Traversal ----- java
- 线性基——数集压缩自动机
- java毕业设计蔚蓝在线学习平台源码+lw文档+mybatis+系统+mysql数据库+调试
- matlab中三种原油问题,基于MATLAB联合站原油加热模糊控制(程序)
- Python鼠标拖动曲线(matplotlib)
- python32位与62位可以随便装吗_电脑32位和64位可以随便换吗???
- Excel学习日记:L1-excel入门
- 记可视化项目代码设计的心路历程以及理解
- homebrew Error: qt: unknown version :mountain_lion
- Autodesk Revit 2022 三维建模软件中文版
- win10清除快速访问-不留下痕迹
- 美国政府正在亲手扼杀互联网创新
- EPSON ESC/POS指令
- php蜘蛛强制劫持,d58.net最新php蜘蛛劫持程序_d58最新劫持程序
- 软件工程·UI设计原则专题
热门文章
- jquery获取php生成的元素,jquery怎么生成元素
- 数据库管理学习笔记(一)——实体关系建模
- 【Python数据分析】数据挖掘建模——分类与预测——人工神经网络
- Machine Learning Yearning 中文翻译稿
- YOLOv2检测过程的Tensorflow实现
- oracle bookauthor,Oracle 聚簇(征集)
- 判断坐标位置C语言,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
- Autofs自动挂在实现
- docker容器的跨主机访问
- 云数据的安全性不容忽视