Windows 编译 FFTW 2/3 以及安装CurveLab

曲波变换是在做信号处理是可能会用到的一种稀疏变换,其源程序包可在 CurveLab 下载,实现方式是基于快速傅里叶变换(FFTW)。截至目前,CurveLab发布的源程序包仍然是基于fftw-2.1.5,然而FFTW目前已全面支持fftw3,在Windows系统上并没有fftw2的版本支持。因此,本文将介绍如何在Windows上安装使用曲波变换。

我们需要重源码编译 FFTW 以及 CurveLab。CurveLab 内提供有 matlab 版本程序以及 mex 混编程序,编译该部分则可以在MATLAB中使用C++的曲波变换,比 matlab 版本更加快速。

操作系统:Win 10, 64位
准备工作: 安装MinGW-w64, 安装MSYS2; 解压 fftw-2.1.5, 解压Curvelab-2.1.3;
(如果是32位系统,安装MinGW即可)
需要的工具: MinGW64, MSYS2, fftw-2.1.5,CurveLab-2.1.3

  1. MinGW-w64 及 msys2 安装
    下载安装程序按照官网教程安装即可。注意需要利用msys2安装上make,在msys2中,输入
    pacman -S make即可自动安装。
    将MingGW-w64以及msys2的bin目录添加到系统路径;比如我的是

    image.png

  2. 编译 FFTW
    2.1 打开cmd, 进入fftw-2.1.5路径。
    2.2 输入 sh 进入bash环境
    2.3 设置编译配置,输入
    ./configure --prefix=/your/install/path --with-pic
    其中/your/install/path 是你想要安装到的目录,这是一个绝对路径。比如我安装的位置是/d/Toolbox/fftw,意思是在D盘Toolbox文件夹下的fftw文件夹。
    2.4 输入make,进行编译,大概需要10分钟;
    2.5 输入make install,开始安装。

  3. 编译 CurveLab
    3.1 进入 CurveLab-2.1.3 解压文件夹,修改makefile.opt文件中FFTW_DIR 值为 fftw-2.1.5 解压文件的绝对路径 (上一步已在该文件夹下编译fftw)。如果需要编译 mex 文件以提供更快速的 matlab 版本曲波变换,则需要指定mex 编译器(修改MEX的值)。我的路径配置如下,大家根据自己的路径进行配置

    image.png

    3.2 在 shell 中输入make lib,编译静态链接库文件;
    3.3. 在 shell 中输入 make matlab, 编译mex 文件;
    image.png

至此,所有编译工作已经完成。

2021.07.07 更新

首先给各位阅读了本文章但未能解决问题的朋友说声抱歉,本人由于工作原因已长时间未登陆,抱歉没有及时解决各位的问题。

我已将我在64位 Windows 系统下编译好的 CurveLab 包上传至百度网盘,有需要的朋友可前去下载,提取码 fh7k。谢谢大家。

你可能感兴趣的:(Windows 编译 FFTW 2/3 以及安装CurveLab)