:我目前使用下面的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