[問題] FFTW 對一個維度做 FFT

看板C_and_CPP作者時間14年前 (2012/02/06 14:01), 編輯推噓-1(017)
留言8則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) FFTW 問題(Question): 只對一個維度做FFT 餵入的資料(Input): 不知如何寫 可能我的發文太過簡單了 我把問題弄詳細些 這是 FFTW 的Tutorial的寫法 fftw_complex *an_array; an_array = (fftw_complex*) fftw_malloc(5*12*27 * sizeof(fftw_complex)); 我用此法定義了一個(x, y, z) -> (5, 12, 27) 的空間 接下來我要做的是f(x, y, z) -> F(x, y, kz) 非 F(kx, ky, kz) 他的tutorial裡用 fftw_plan_dft_3d 是把f(x, y, z)變成 F(kx, ky, kz) 我想問有沒有辦法只做一個方向的FFT 謝謝 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 我的維度是3維的,但我只想對一維做FFT -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.138.41.207

02/06 15:32, , 1F
我不知道FFTW要怎麼用 但我google後 第二個結果裡面就有教了
02/06 15:32, 1F

02/06 15:44, , 2F
我想樓上誤會了,如果是一維的陣列,他可以做一維
02/06 15:44, 2F

02/06 15:45, , 3F
二維的陣列他可以做二維,但我的問題是,我是二維的陣列
02/06 15:45, 3F

02/06 15:45, , 4F
但我只想做一維。
02/06 15:45, 4F

02/06 16:10, , 5F
你需要知道的是如何把你的三維變成一維
02/06 16:10, 5F
※ 編輯: kuanguan 來自: 128.138.41.207 (02/06 16:18)

02/06 16:11, , 6F
就算是二維的fft也是分成兩次作得
02/06 16:11, 6F

02/06 16:22, , 7F
因為FFTW是package所以我不知道他詳細的運作。
02/06 16:22, 7F

02/06 16:23, , 8F
不過我可以試試看樓上的想法。謝謝
02/06 16:23, 8F
文章代碼(AID): #1FBspEig (C_and_CPP)