赞
踩
笔者是C++的初学者,也是VS2015的初学者,最近的编程内容涉及到了傅里叶变换,于是查阅了很多资料,得知有FFTW这个十分强大的库,下面从下载到安装详细介绍。
FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT。
FFTW 通常比目前其它开源Fourier变换程序都要快,最新版本为fftw-3.3.8。FFTW 受到越来越多的科学研究和工程计算工作者的普遍青睐,并为量子物理、光谱分析、音视频流信号处理、石油勘探、地震预报、天气预报、概率论、编码理论、医学断层诊断等领域提供切实可行的大规模 FFT 计算。
(一)、下载
(二)、安装
1.新建vs2015工程,使用时要记得#include”fftw3.h“。
2.配置
(1)”项目“——>”项目属性”——>”配置属性”——>”链接器”——>”输入”——>”附加依赖项”,将以下三项添加进去:
(2).”项目“——>”项目属性”——>”配置属性”——>”VC++目录”——>”包含目录”,把 E:\fftw-3.3.5-dll64添加进去:
(3).”项目“——>”项目属性”——>”配置属性”——>”VC++目录”——>”库目录”:
1…把生成的libfftw3-3.dll、libfftw3f-3.dll、libfftw3l-3.dll 三个dll文件复制到项目文件夹里(有.vcxproj文件的那个文夹)。
2.设置项目为64位
工具栏->设置平台为X64 (如果你刚才配置的是Release,那就选Release)
3.项目属性——>链接器——>高级——>目标计算机——>MachineX64(/MACHINE:X64)
这样就配置完成了。去加个头文件#include "fftw3.h"试一下会不会报错,如果报错,从头重新来一遍。
4.示例代码
#include "fftw3.h" int main() { fftw_complex *in, *out; fftw_plan p; int N = 8; int i; int j; in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N); for (i = 0; i < N; i++) { in[i][0] = 1.0; in[i][1] = 0.0; printf("%6.2f ", in[i][0]); } printf("\n"); p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed*/ for (j = 0; j < N; j++) { printf("%6.2f ", out[j][0]); } printf("\n"); fftw_destroy_plan(p); fftw_free(in); fftw_free(out); getchar(); return 0; }
运行结果:
——EDN——
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。