看板 C_and_CPP 關於我們 聯絡資訊
從結果來看 odata和idata差了N倍 由wiki的資料(http://zh.wikipedia.org/zh-tw/离散傅里叶变换)可以看出 下面給出離散傅立葉轉換的轉換對: 對於N點序列\left\{x[n]\right\}_{0\le n <N},它的離散傅立葉轉換(DFT)為 \hat{x}[k]=\sum_{n=0}^{N-1} e^{-i\frac{2\pi}{N}nk}x[n] \qquad k = 0,1,\ldots,N-1. 其中e 是自然對數的底數,i 是虛數單位。通常以符號\mathcal{F}表示這一轉換, \hat{x}=\mathcal{F}x 離散傅立葉轉換的逆轉換(IDFT)為: x\left[n\right]={1 \over N}\sum_{k=0}^{N-1} e^{ i\frac{2\pi}{N}nk}\hat{x}[k] \qquad n = 0,1,\ldots,N-1. 可以記為: x=\mathcal{F}^{-1}\hat{x} 實際上,DFT和IDFT轉換式中和式前面的歸一化係數並不重要。在上面的定義中,DFT 和IDFT前的係數分別為1 和1/N。有時會將這兩個係數都改成1/\sqrt{N}。 所以我覺得CUFFT為了適應各種應用 只做Σ的部份 而scale留給使用者自己處理 所以最後的結果才會差N倍 若是把FFT的結果印出來看 和MATLAB印證的答案是相同的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.37.239 ※ 編輯: lgen7604 來自: 122.120.37.239 (12/26 20:23)
aada:謝謝您, 所以說我得在反轉換後在除上scale才會是正確的, 目前 12/26 21:24
aada:也一邊開matlab一邊測試C,一起來印證結果 12/26 21:24