:我目前使用下面的MATLAB功能的MATLAB FFT转换为CUDA FFT
function out = fft_2d(in)
out = fftshift(fft2(ifftshift(in)));
据我了解,这需要一个“自然秩序”的输入,在和“互换”,它要传递给fft2,然后使用fftshift再次移动fft2的结果,让我回到自然的排序输出。它是否正确?
我正在将此代码移植到C,并且我想使用CUFFT来执行此操作。根据该文件,我想我会用:
/* Create a 2D FFT plan. */
cufftPlan2d(&plan, NX, NY, CUFFT_C2R);
/* Use the CUFFT plan to transform the signal out of place. */
cufftExecC2R(plan, idata, odata);
但我将不得不做出来cufftExecC2R的数据是什么样移?此外,odata是否需要成为NX * NY连续数据块?它是否必须在列或行的主要顺序?我会猜测,因为那就是C是什么。
由于
我不知道ifftshift是什么,为什么你需要它,但cuda fft部分看起来不错。根据matlab的 – fabrizioM 2011-04-19 22:47:19
帮助它撤销fftshift的结果 – Derek 2011-04-20 17:35:36