一、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. 获取网页URL地址及参数等的两种方法(js和C#)

    转:获取网页URL地址及参数等的两种方法(js和C#) 一 js 先看一个示例 用javascript获取url网址信息 <script type="text/javascript&q ...

  2. android学习笔记23——菜单

    菜单在桌面应用程序中使用非常广泛,由于手机屏幕的制约,菜单在手机应用中减少不少. android应用中的菜单默认是不可见的,只有当用户单击手机上“Menu”键时,系统才会显示该应用关联的采用项. an ...

  3. rsync 无密码 传输

    1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器.下面这个例子将本地的/home/ramesh同步到远程目录/backup/ramesh( ...

  4. mongodb的读写分离

    转自:http://blog.csdn.net/sd0902/article/details/21538621 mongodb的读写分离使用Replica Sets来实现 对于replica set ...

  5. abstract 与 interface

    接口和抽象类: 最本质的区别:抽象类是一个不完全的类,是对对象的抽象,而接口是一种行为规范. a. interface中不能有字段,abstract class则可以:b. interface可以被多 ...

  6. spring学习笔记2(转)

    1.在Java开发领域,spring相对于EJB来说是一种轻量级的,非侵入性的Java开发框架,曾经有两本很畅销的书<Expert one-on-one J2EE Design and Deve ...

  7. 转_IOS开源

    http://www.csdn.net/article/2013-06-05/2815530-GitHub-iOS-open-source-projects-one 苹果App Store本身所具有的 ...

  8. 树莓派自身摄像头的opencv调用

    很多人知道,opencv不能直接对树莓派原装摄像头进行调用,因为raspicam不是V4L驱动,怎样才能使用树莓派原装摄像头,它可比多数usb摄像头清晰和小巧. 具体方法,给树莓派原装摄像头安装一个可 ...

  9. php 获取时间今天明天昨天时间戳

    <?php echo "今天:".date("Y-m-d")."<br>";      echo "昨天:&qu ...

  10. 使用Async和Await进行异步编程(C#版 适用于VS2015) z

    你可以使用异步编程来避免你的应用程序的性能瓶颈并且加强总体的响应.然而,用传统的技术来写异步应用是复杂的,同时编写,调试和维护都很困难. VS2012介绍了简单的方法,那就是异步编程,它在.Net F ...