Re: [問題]CUDA CUFFT 兩次FFT輸入與輸出結果不一樣
從結果來看
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)
推
12/26 21:24, , 1F
12/26 21:24, 1F
→
12/26 21:24, , 2F
12/26 21:24, 2F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
13
22