sfft代码编译-稀疏傅里叶转换

最近接到一个项目,要求把稀疏傅里叶变换的代码编译通过,该代码由老外实现,并且官方网址为:http://groups.csail.mit.edu/netmit/sFFT/。刚开始以为该代码为官方网址,我就在Ubuntu18.04环境上编译了,但是按照他说的搭建依赖库->编译,都实现了最后还是没有编译通过。后来经过九九八十一难,找了很多相关的资料才知道老外把代码给写错了,让我好一阵惊讶。其中我还不断地联系此网址的相关负责人都没有给出任何回复。

接下来我吧所有的错误以及需要改正的地方纠正出来:

1.sudo apt-get install pkg-config
2.sudo apt-get install valgrind
3.sudo apt-get install fftw3 fftw3-dev 
4.解压 fftw-3.3.9.zip 
    cd fftw-3.3.9
    ./configure
    make
    sudo make install
5.解压gnuplot-5.4.2.tar.gz
    cd gnuplot-5.4.2
    ./configure
    make
    sudo make install
6.解压sFFT.tar
    cd sFFT
    ./configure
    make
    运行命令 ./experiment -N 65536 -K 50 -B 4 -E 2 -M 128 -m 6 -L 10 -l 4 -r 2 -t 1e-8 -e 1e-8
fftw 
makeinstall”命令在标准位置安装fftw和rfftw库,通常需要root权限
--prefix标志指定另一个要配置的安装目录
makecheck 使FFTW测试程序按其速度运行
make distclean


1.fft.h
    将2个“typedef double complex complex_t;”更改为“typedef double _Complex complex_t;”
2.experiment.cc
    202:将"p = fftw_plan_dft_1d(n, x, xtmp, FFTW_FORWARD, FFTW_MEASURE);"修改为
        "p = fftw_plan_dft_1d(n,reinterpret_cast<fftw_complex *>(x),reinterpret_cast<fftw_complex *>(xtmp), FFTW_FORWARD, FFTW_MEASURE);"
    204:将"p = fftw_plan_dft_1d(n, x, xtmp, FFTW_FORWARD, FFTW_ESTIMATE);"修改为
        "p = fftw_plan_dft_1d(n,reinterpret_cast<fftw_complex *>(x),reinterpret_cast<fftw_complex *>(xtmp), FFTW_FORWARD, FFTW_ESTIMATE);"
3.fftw.cc
    34:将2个"complex_t"修改为"fftw_complex"
    35:将2个"complex_t"修改为"fftw_complex"
    44:将"fftw_plan_dft_1d(n, x, out,"修改为
        "fftw_plan_dft_1d(n, reinterpret_cast<fftw_complex *> (x), reinterpret_cast<fftw_complex *> (out),"     
4.generate_graphs.cc
    180:将"p = fftw_plan_dft_1d(n, x, xtmp, FFTW_FORWARD, FFTW_MEASURE);"修改为
        "p = fftw_plan_dft_1d(n,reinterpret_cast<fftw_complex *>(x),reinterpret_cast<fftw_complex *>(xtmp), FFTW_FORWARD, FFTW_MEASURE);"
    182:将"p = fftw_plan_dft_1d(n, x, xtmp, FFTW_FORWARD, FFTW_ESTIMATE);"修改为
        "p = fftw_plan_dft_1d(n,reinterpret_cast<fftw_complex *>(x),reinterpret_cast<fftw_complex *>(xtmp), FFTW_FORWARD, FFTW_ESTIMATE);"
        

以上内容分为两部分第一部分是sfft需要的搭建环境,第二部分为sfft源代码需要修改的地方。

稀疏傅里叶变换sfft需要依赖FFTW包,该包官方网址为http://www.fftw.org/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值