树莓派安装fftw

FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT。FFTW 还包含对共享和分布式存储系统的并行变换,它可自动适应你的机器, 缓存,存储大小,寄存器个数。可以在树莓派、Android这些移动端装上FFTW库便于将数据进行频域变换、处理。以下是具体安装和配置过程

1、首先下载fftw-3.3.8.tar.gz(http://www.fftw.org/download.html) 这个安装包,连接树莓派并进入到板子中。通过samba将此文件复制到树莓派中。

2、使用tar zxvf  fftw-3.3.8.tar.gz命令解压文件,然后在/usr/local目录下创建fftw目录(sudo mkdir /usr/local/fftw)也就是这个库的安装目录

3、进入到解压后的fftw库目录里,需要安装两次。第一次安装和配置如下

./configure --enable-type-prefix --prefix=/usr/local/fftw --with-gcc --disable-fortran --enable-i386-hacks  --enable-shared=yes

make

make install

make clean(这是为第二次安装做准备)

第二次安装和配置如下

 ./configure --enable-float --enable-type-prefix --prefix=/usr/local/fftw  --with-gcc --disable-fortran --enable-i386-hacks --enable-shared=yes

make

make install

进入到/usr/local/fftw会有四个文件夹

编写测试程序test_fftw.cpp进行验证,以下是测试代码

#include <complex>
#include <fftw3.h>
#include <math.h>
#include <iostream>

#define N 10

using namespace std;


int main(int argc, char* argv[]){
 fftw_complex in[N], out[N];
 fftw_plan p;
 
 p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_MEASURE);
 for(int i = 0; i < N; i++){
  in[i][0] = i;
  in[i][1] = 0.0;
 }
 
 fftw_execute(p);
 
 for(int i = 0; i < N; i++){
  cout<< out[i][0] << " " << out[i][1] << endl;
 }
 
 complex<double> temp = 0.0;
 for(int k = 0; k < N; k++){
  double pi = 4 * atan(1.0);
  temp += exp(complex<double>(0.0, -2.0 * pi * 3 * k / N)) * complex<double>(in[k][0], in[k][1]);
 }
 
 cout << "out[3] is " << temp << endl;
 
 fftw_complex out1[N];
 fftw_plan p1;
 
 p1 = fftw_plan_dft_1d(N, out1, in, FFTW_BACKWARD, FFTW_MEASURE);
 
 for(int i = 0; i < N; i++){
  out1[i][0] = out[i][0];
  out1[i][1] = out[i][1];
 }
 
 fftw_execute(p1);

 for(int i = 0; i < N; i++){
  cout << in[i][0] << " " << in[i][1] << endl;
 }
 
 fftw_destroy_plan(p);
 fftw_destroy_plan(p1);
 
 return 0;
}

编译程序g++ test_fftw.cpp -o test -lfftw3 -I /usr/local/fftw/include -L /usr/local/fftw/lib

./test运行程序,以下是结果

从结果得知库已安装成功,以上是整个树莓派安装fftw库的全过程 

### 安装FFTW库于Linux系统 #### 准备工作 为了在Linux操作系统中成功安装FFTW库,需先确认系统的开发环境已经就绪。通常情况下,这涉及到确保编译器(如GCC)、CMake以及其他必要的构建工具已经被正确安装。 #### 下载源码包 可以从官方网站获取最新的FFTW版本。使用wget命令来下载指定链接下的压缩文件[^1]: ```bash wget http://www.fftw.org/fftw-3.3.8.tar.gz ``` #### 解压并进入解压后的目录 利用tar指令完成对下载下来的`.tar.gz`格式档案的解压缩操作,并切换到新创建的工作空间内继续后续流程: ```bash tar -xf fftw-3.3.8.tar.gz cd fftw-3.3.8/ ``` #### 配置与编译 执行configure脚本来设定目标架构以及优化选项等参数;之后运行make来进行实际的编译过程。对于双精度支持的需求,在这里特别指定了`--enable-shared --enable-openmp --enable-threads`这些标志位以增强性能表现: ```bash ./configure --prefix=$FFTW_LIB_PATH --enable-shared --enable-openmp --enable-threads make -j$(nproc) ``` 上述命令中的`$FFTW_LIB_PATH`变量应当替换为具体的安装位置路径。同时,通过设置多线程数目的方式加速整个编译进度(`-j$(nproc)`表示自动检测CPU核心数量)[^1]。 #### 完成安装 当所有组件都被顺利编译完成后,可以正式将其部署至预定的目标文件夹里去。在此之前建议先阅读官方文档了解更多细节说明,最后一步就是调用`make install`完成最终的安装动作: ```bash sudo make install ``` 此时应该可以在预设好的 `$FFTW_LIB_PATH/lib` 路径下找到静态链接库 `libfftw3.a` 文件的存在证明了此次安装活动的成功结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值