一、FFTW库简介(from百度百科

      FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT。
      FFTW 还包含对共享和分布式存储系统的并行变换,它可自动适应你的机器, 缓存,存储器大小,寄存器个数。
      FFTW 通常比目前其它开源Fourier变换程序都要快,最新版本为fftw-3.3.3。

图1.  FFTW-logo
     FFTW 的编码生成器采用面向对象设计技术和面向对象语言Caml 编写;它能自动适应系统硬件,因而可移植性很强。FFTW2.1.5 支持共享存储多线程并行和分布式存储 MPI 并行。FFTW 的运算性能远远领先于目前已有的其它 FFT 软件。
     FFTW 为任意大小的模式生成一个计划(plan),通过对该计划施行各种运算完成各种模式的转换;内部结构及其复杂性对用户透明;速度快 (适合各种机器的内部编译器、代码生成器利用 AST 在运行时生成代码并自我优化,而且不占用编译时间,采用分层存储技术)。
     FFTW 受到越来越多的科学研究和工程计算工作者的普遍青睐,并为量子物理、光谱分析、音视频流信号处理、石油勘探、地震预报、天气预报、概率论、编码理论、医学断层诊断等领域提供切实可行的大规模 FFT 计算。
 
二、使用方法(下载地址:FFTW官方网站上提供编译好的DLL文件

下载解压后,文件中存在DLL文件,但是没有LIB文件,需从DEF文件中生成编译所需要的.lib文件。

具体方法

第一步:在Visual Studio 2010中打开Tools > Visual Studio Command Prompt ,转到解压后的文件夹中(比如D:\fftw),使用VS2010自带的lib.exe软件生成LIB文件:

32位:

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

64位:

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

这样对应文件夹下便生成了libfftw3-3.lib、libfftw3l-3.lib、libfftw3f-3.lib三个LIB文件。

该文件夹下还包括原有的fftw3.h和三个DLL文件libfftw3-3.dll、libfftw3l-3.dll、libfftw3f-3.dll。

第二步:新建一个Project后,我们可以选择Project > Properties打开项目属性。把D:\fftw添加到VC++ Directories项目下的Include Directories栏(头文件搜索路径)和Library Directories栏(lib文件搜索路径)中。同时打开Linker>Input 将上面3个LIB文件名添加在Additional Dependencies 栏目中。这样便设置好了路径,使得编译器可以找到我们上面生成的LIB文件。

第三步:我们只要把前面提到的三个DLL文件放在建立的Project文件夹下,这样程序运行时便可以使用了。网络上有人说把DLL放在System32中,这当然可以使用,不过个人认为修改windows文件夹是一大忌讳。

以上只是简单的安装方法,想要彻底理解整个过程,需要windows编程的许多知识。

FFTW库在VS 2010中的使用方法的更多相关文章

  1. FFTW库+VS2012配置

    配置环境:Windows7+VS2012 下载资源包,解压后例如以下图: 要嵌入VS2012中,须要相应的lib文件,于是接下来使用VS2012来生成相应的lib文件 在VS2012/Common7/ ...

  2. SharePoint Server 2010 中的基本任务

    SharePoint Foundation 和 SharePoint Server 概述 SharePoint Foundation 2010 是一项用于 SharePoint 网站的基础技术,它可以 ...

  3. 在 SharePoint 2010 中访问数据

    转:http://blog.banysky.net/?p=81001 数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ ...

  4. 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序

    原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...

  5. VSTO学习笔记(四)从SharePoint 2010中下载文件

    原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...

  6. 关于SharePoint 2010中不能使用AjaxControlToolkit的解决办法

    因为项目中有一个需求需要使用calendar控件,而且样式要和Reporting Service中的尽量一致,搜索了很久发现还是微软的AjaxControlToolkit提供的CalendarExte ...

  7. SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)

    由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...

  8. 在Sharepoint 2010中启用Session功能的说明文档

    在Sharepoint 2010中启用Session功能的说明文档 开发环境:Windows 7系统,SharePoint Server 2010,Visual Studio 2010 按以下步骤进行 ...

  9. SharePoint 2010中列表Add和Delete事件解析

    转:http://winsystem.ctocio.com.cn/26/11400026_2.shtml [IT专家网独家撰稿]SharePoint 2010与以前的版本相比,天翻地覆的变化并不为过. ...

随机推荐

  1. LintCode "Submatrix Sum"

    Naive solution is O(n^4). But on 1 certain dimension, naive O(n^2) can be O(n) by this well-known eq ...

  2. 剑指offer系列41---数字在数组中出现的次数

    [题目]统计一个数字在排序数组中出现的次数. package com.exe9.offer; /** * [题目]统计一个数字在排序数组中出现的次数. * @author WGS * */ publi ...

  3. android学习笔记九——RatingBar

    RatingBar==>星级评分条 RatingBar和SeekBar十分相似,它们甚至有相同的父类:AbsSeekBar.两者都允许用户通过拖动来改变进度: 两者最大的区别在于RatingBa ...

  4. Oracle中in和exists的选择

    在ORACLE 11G大行其道的今天,还有很多人受早期版本的影响,记住一些既定的规则,   1.子查询结果集小,用IN   2.外表小,子查询表大,用EXISTS 摘自:http://blog.chi ...

  5. (C/C++) Interview in English - Threading

    Q. What's the process and threads and what's the difference between them? A.  A process is an execut ...

  6. IGS_学习笔记09_IREP生成服务后台工具Soagenerate.sh

    2015-01-06 Created By BaoXinjian 参考:张礼军 - http://oracleseeker.com/2009/10/23/irep_service_generation ...

  7. CF 337D Book of Evil 树形DP 好题

    Paladin Manao caught the trail of the ancient Book of Evil in a swampy area. This area contains n se ...

  8. python中urllib, urllib2,urllib3, httplib,httplib2, request的区别

    permike原文python中urllib, urllib2,urllib3, httplib,httplib2, request的区别 若只使用python3.X, 下面可以不看了, 记住有个ur ...

  9. MyBatis返回主键

    网上给的例子都很简单 , 只要用useGeneratedKey就行了. @Insert({ "INSERT INTO money_record_increasement (id, creat ...

  10. iOS获取电量方法

    ios简单的方法: [UIDevice currentDevice].batteryMonitoringEnabled = YES; double deviceLevel = [UIDevice cu ...