曲波变换是在做信号处理是可能会用到的一种稀疏变换,其源程序包可在 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
-
MinGW-w64 及 msys2 安装
image.png
下载安装程序按照官网教程安装即可。注意需要利用msys2安装上make,在msys2中,输入
pacman -S make
即可自动安装。
将MingGW-w64以及msys2的bin
目录添加到系统路径;比如我的是
-
编译 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
,开始安装。 -
编译 CurveLab
image.png
3.1 进入 CurveLab-2.1.3 解压文件夹,修改makefile.opt
文件中FFTW_DIR
值为 fftw-2.1.5 解压文件的绝对路径 (上一步已在该文件夹下编译fftw)。如果需要编译 mex 文件以提供更快速的 matlab 版本曲波变换,则需要指定mex 编译器(修改MEX
的值)。我的路径配置如下,大家根据自己的路径进行配置
3.2 在 shell 中输入make lib
,编译静态链接库文件;
3.3. 在 shell 中输入make matlab
, 编译mex 文件;
image.png
至此,所有编译工作已经完成。
网友评论