zoukankan      html  css  js  c++  java
  • 安装fftw到window(vs2010)及使用fftw库函数实现4096点fft变换计算

    WindowsFFTW库的安装:

      1. 从网站http://www.fftw.org/install/windows.html上下载最新的预编译文件:
          32-bit version: fftw-3.2.2.pl1-dll32.zip (1.8MB)
          64-bit version: fftw-3.2.2-dll64.zip (2.2MB)

      (这里建议下载32位机文件/64位向下兼容)

      

      2. 使用Lib.exe生成相应的Lib文件  :vs2010的安装路径为:D:Program Files (x86)Microsoft Visual Studio 10.0
         Lib.exe在VS的安装目录下:

         32位版本:D:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE   (32位X86)

         64位版本:D:Program Files (x86)Microsoft Visual Studio 10.0VCinamd64   (AMD64位CPU)

           D:Program Files (x86)Microsoft Visual Studio 10.0VCinx86_ia64(英特尔X86架构和ia64(ia64安腾架构,应用很少很少))

                      D:Program Files (x86)Microsoft Visual Studio 10.0VCinx86_amd64 (AMD64位和英特尔X86CPU,最常用)

                      
         cmd进入到Lib.exe目录下,以64位为例:

       进入到D:Program Files (x86)Microsoft Visual Studio 10.0VCinx86_amd64。

         将D:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE:mspdb100.dll,mspdbcore.dll,mspdbsrv.exe,msobj100.dll 复制到D:Program Files (x86)Microsoft Visual Studio 10.0VCinx86_amd64里面。

         把libfftw3-3.def,libfftw3f-3.def,libfftw3l-3.def也拷到bin目录对应的平台下——x86_amd64里面。

         执行Lib命令,生成库文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib

        32位版本:

        lib /def:libfftw3f-3.def
        lib /def:libfftw3-3.def
        lib /def:libfftw3l-3.def

        64位版本:

        lib /machine:x64 /def:libfftw3f-3.def
        lib /machine:x64 /def:libfftw3-3.def
        lib /machine:x64 /def:libfftw3l-3.def

      3.将libfftw3f-3.dll libfftw3-3.dll libfftw3l-3.dll放入C:WindowsSysWOW64(32位放在windows/system32)中,然后将生成的库文件libfftw3-3.lib libfftw3f-3.lib   libfftw3l-3.lib放入vc中的lib文件夹,把fftw3.h放入vc中的include文件夹。

      新建工程应用:

        头文件:#include”fftw3.h“,

       设置参数:”项目“==>"项目属性"==>"配置属性"==>"链接器"==>"输入"==>"附加依赖项",将以下三项添加进去:

       libfftw3-3.lib

       libfftw3f-3.lib

       libfftw3l-3.lib

      代码:

      

     1 // test_6.cpp : 定义控制台应用程序的入口点。
     2 //
     3 #include "stdafx.h"
     4 #include "fftw3.h"
     5 #include <time.h>
     6 int main()
     7 {
     8     clock_t start,finish; //定义clock()函数返回值保存变量
     9     start=clock(); //启动计时,调用clock()开始每过千分之一毫秒start+1
    10     fftw_complex *in, *out; //定义两个复数指针,分别存放输入输出
    11     fftw_plan p;  //定义一个计划,计划名叫p
    12     int N= 4096;  //fft计算的点数
    13     in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); //开辟存放起始数据的内存空间
    14     out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    15     /****打印初始值****/
    16     for( int i=0; i < N; i++)
    17     {
    18         in[i][0] = i;
    19         in[i][1] = 0.0;
    20         printf("%6.2f+%6.2fj",in[i][0],in[i][1]);
    21     }
    22     printf("
    "); 
    23     /***制定计划p**/
    24     p=fftw_plan_dft_1d(N,in,out, FFTW_FORWARD, FFTW_ESTIMATE);
    25     /***执行指定的计划p**/
    26     fftw_execute(p);
    27     /******打印输出fft变换之后的数据*****/
    28     for(int j = 0;j < N;j++)
    29     {
    30         printf("%6.9f+%6.9fj
    ",out[j][0],out[j][1]);
    31     }
    32     printf("
    ");
    33     /****完成计划之后,撤销计划******/
    34     fftw_destroy_plan(p);
    35     /*****释放内存空间******/
    36     fftw_free(in); 
    37     fftw_free(out);
    38     /***统计执行时间****/
    39     finish=(double)clock();
    40     printf("time=%f
    ",(double)(finish-start)/CLOCKS_PER_SEC);
    41     return 0;
    42 }

      

    内在的趣味,表面的繁琐
  • 相关阅读:
    C#反射:获取自定义类,动态调用方法
    asp.net 错误 404找不到页面的解决办法
    C# 用QQ邮箱发送邮件
    C# 进制转换
    SharePoint Designer 2010 左侧导航没有 page layouts
    Insert Multiple User in SharePoint list
    发布Layouts页面的时候报错:System.ArgumentException: Invalid SPListItem. The SPListItem provided is not compatible with a Publishing Page
    Update SharePoint multiple user field
    Enable m access sharepoint
    SPUser and LookUp Field update values
  • 原文地址:https://www.cnblogs.com/data1213/p/4980863.html
Copyright © 2011-2022 走看看