C++ fftw库的使用

本文最后更新于:2024年1月27日 下午

C++ fftw库的使用

FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT。

fftw库的下载安装
1
2
3
4
5
6
7
8
9
10
11

tar -xzvf fftw-3.3.8.tar.gz

./configure --prefix=/home/xxx/usr/fftw --enable-mpi --enable-openmp --enable-threads --enable-shared MPICC=mpicc CC=gcc F77=gfortran

make

make install

export LD_LIBRARY_PATH=/home/xxx/usr/fftw/lib:$LD_LIBRARY_PATH

fftw库的使用

头文件

1
#include <fftw3.h>

进行fft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void fft(std::vector<std::complex<double>>& a) {

vector<Complex> temp(N);

fftw_complex* data = reinterpret_cast<fftw_complex*>(a.data());

fftw_complex* data1 = reinterpret_cast<fftw_complex*>(temp.data());

fftw_plan p = fftw_plan_dft_1d(N, data, data1, FFTW_FORWARD, FFTW_ESTIMATE);

fftw_execute(p);

a.assign(temp.begin(),temp.end());

}

2维同理



C++ fftw库的使用
https://aki-yzh.github.io/2024/01/27/C++ fftw库的使用/
作者
Aki-yzh
发布于
2024年1月27日
更新于
2024年1月27日
许可协议