(1)FFTW包。解压
(2)如果程序是32位,需要编译32位的。如下:cmd->(解压文件夹)->键入:
lib /machine:i386 /def:libfftw3-3.def
lib /machine:i386 /def:libfftw3f-3.def
lib /machine:i386 /def:libfftw3l-3.def
(3)在VS项目中添加解压文件路径
头文件:项目右键->属性->VC++目录—>包含目录—>添加路径
库文件:项目右键->属性->VC++目录—>库目录—>添加路径
依赖项:项目右键->属性->链接器->输入->附加依赖项->libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib
(4)OK.
(5)如果程序是64位,需要编译64位。只需要将(2)中的改为:
lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3f-3.def
lib /machine:x64 /def:libfftw3l-3.def
其余步骤一致!!
(6)示例代码:
#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;
}
注:把dll和lib文件拷贝到工作目录