Win10+VS2017安装FFTW库

参考:https://blog.csdn.net/alxe_made/article/details/84205377
博主环境和我的一样,十分有效,只是我一开始没有把命令行转到解压的文件目录下。转过去以后一切正常!
用到的功能:
1.对一行数据进行fft,in为输入,out为输出,这里将VectorXd类型的数组a通过每位赋值给in(in中每位存储的是double型变量,与a数据类型相同)。此in为fftw_complex 类型,实际这里输入的也是实数值。

    fftw_complex *in, *out;
    fftw_plan p;
    int i;
    int j;
    int L=62000;
    in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * L);
    out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * L);
    for (i = 0; i < L; i++)
    {
        in[i][0] = a[i];
        in[i][1] = 0.0;
        //printf("%6.2f ", in[i][0]);
    }
    printf("\n");
    p = fftw_plan_dft_1d(L, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
    fftw_execute(p); /* repeat as needed*/
    for (j = 0; j < 20; j++)
    {
        printf("%6.2f %6.2f\n", out[j][0],out[j][1]);
    }
    printf("\n");
    fftw_destroy_plan(p);
    fftw_free(in);
    fftw_free(out);

2.一维实数据的DFT

fftw_plan fftw_plan_dft_r2c_1d(int n, double *in, fftw_complex *out, unsigned flags);
fftw_plan fftw_plan_dft_c2r_1d(int n, fftw_complex *in, double *out, unsigned flags);

r2c版本:实输入数据,复Hermitian输出,正变换。

c2r版本:复Hermitian输入数据,实输出数据,逆变换。

你可能感兴趣的:(Win10+VS2017安装FFTW库)