将数据复制到FFTW的输入浪费了很多时间?

时间:2013-11-13 09:23:51

标签: fftw

我有一个512 * 1024 * 127(rho,列页面)的数组A,我想对每一页进行2D FFT, 当我创建一个FFTW平面时,例如:

fftwf_plan mFFTPalen = fftwf_plan_dft_r2c_2d(1024, 512, in, out, FFTW_ESTIMATE);

我想使用这个平面来完成所有2D fft,即2D fft的127倍, 我必须将数据复制到“in”数组127次, 并将“out”数组的fft结果复制127次, 我认为这是浪费时间,

for(int plane=0; plane<127; plane++)
{
memcpy(in, A[plane*512*1024], sizeof(float)*512*1024);
fftwf_execute(mFFTPalen);
memcpy(complexData,out,sizeof(float)*513*512*2);
}

谁能告诉我我做对了吗?

1 个答案:

答案 0 :(得分:0)

使用Advanced Interface中的fftwf_plan_many_dft来保存所有这些复制。只有这样做才能确定您遇到性能问题,否则只会浪费精力。