[爆卦]MATLAB FFT 怎麼 用是什麼?優點缺點精華區懶人包

為什麼這篇MATLAB FFT 怎麼 用鄉民發文收入到精華區:因為在MATLAB FFT 怎麼 用這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者hwwwh (Jong)看板MATLAB標題[運算] fft坐標軸 or 取點 問題時間Wed ...



大家好我有一個關於Fourier transform函數變數不同時作fft的問題想請教大家 :


一般來說Fourier transform 為

A(fx,fy) = integral{ U(x,y) exp(-j2π[xfx+yfy]) dxdy }

這個轉換可以直接給定input U(x,y)並對其作fft而完成

在這邊我假設對input U作fft後的值為A 也就是說A=fftn(U)


但我現在遇到一個問題 若我作的轉換為

A(u,v) = integral{ U(x,y) exp(-j2π[xu+yv]) dxdy }

而其中

u=const‧fx

v=cos(phi)‧fy - const

而我一樣只能用fft函數去求出A(u,v)裡頭每一個值

也就是說仍然和A(fx,fy)時一樣為A'=A=fftn(U)


在數學上他們兩者的差別在於座標軸上點與點之間的距離不同了

可是在matlab透過fft去作運算時並沒辦法看到此項不同

想請問各位前輩和高手如何實現這個部分?

Thanks in advance!

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.46.212
※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1410927363.A.E8D.html
sunev: 你的A是矩陣還是函數 09/17 12:22
hwwwh: 矩陣 09/17 12:34
hwwwh: 數學上為函數 但用matlab做fft時是輸入矩陣U得到矩陣A 09/17 12:36
sunev: 矩陣腳標與座標點的關係要自己選擇,畢竟你只能代有限個點 09/17 15:52
sunev: 所以A'的定義是什麼? 09/17 15:53

抱歉可能我表達沒有很清楚

A(fx,fy) 和 A(u,v) 為在數學上各自對 U(x,y) 作 Foureir transform 的結果

但在matlab中使用函數fft時的結果會是一樣的

因為都是對U做fft 而 fft(U) 算出來的值都是一樣


我直接說我現在在算的東西

我目前是利用fft(U)算出下式A(u,v)矩陣的各個值

A(u,v) = integral{ U(x,y) exp(-j2π[xu+yv]) dxdy }

但其實我要的是A(fx,fy)的分布

他們之間的差別在於有個坐標的轉換

從上面我舉例的關係式可以發現(為求說明方便 只看X方向)

fx=u/const1;

比如u=10,const取0.5,則fx=20


如果我的想法沒錯 這個關係的意義在於

若A(u,v)算出來是一個5x5的矩陣 (這大小和U(x,y)有關)

則其中 u 軸上每一個點與每一個點的距離為十個單位長

換句話說當我作fft(U)得到一個矩陣5x5的矩陣A時

他每一點與每一點之間的長度為10

又因為這在電腦中看不出來 所以我直接認定點距就是10 (原因等下就會看到)

但是如果要轉換到目標作標(fx,fy)上

那就要考慮剛剛那幾行關係式

也就是說現在在 fx 軸上點與點之間長度為20,


這邊再用以下示意圖來解釋

u: *@#$%‧‧‧‧ 原本五個彼此相距為10的點只要五個點就可以表示完成 
fx: *‧@‧#‧$‧% 轉換座標後五個相距為20的點就需要九個點才能完整表示

也就是說現在要把這五個值"等效"的均勻轉換分布到那九個點上

那就會發現fx座標上還有四個空白的‧點沒有值

所以必須用內差的方式補上

而這就是我遇到的問題 不知道該用什麼程式碼來完成



我的簡易想法是

把轉換前(u)算出來的值均勻分布到座標轉換後(fx)的某些點上

u為一1x5 matrix 而fx為一1x9 matrix

[5 6 1 7 3] [5 _ 6 _ 1 _ 7 _ 3]

像是這樣 再把 _ 的部分利用內插法補滿

則 fx = [ 5 5.5 6 3.5 1 4 7 5 3]

差不多像這樣

但因為要做的是大量的不統一size的矩陣轉換且數字也非規則排列

除了想問問看上述此方法該怎麼以通式完成外

也想問問看有沒有前輩遇到類似問題而有更聰明更簡便的解法?

Thanks again!
※ 編輯: hwwwh (140.113.180.175), 09/17/2014 16:59:04
sunev: 為什麼不直算在fx fy座標系上算? 09/17 18:15
hwwwh: 因為使用fft函數直接算就會是在u,v座標上 所以才需轉換 09/17 19:56
hwwwh: 還是我有哪裡搞錯了嗎 09/17 19:56

現在是只有一條式子

A(u,v) = integral{ U(x,y) exp(-j2π[xu+yv]) dxdy }

其中

u=const‧fx

v=cos(phi)‧fy - const

而我想要找的為A(fx,fy)

請問這樣有辦法直接求嗎 我判斷是無法但有可能我錯了 如果可以的話請指教!
※ 編輯: hwwwh (140.113.180.175), 09/17/2014 20:01:35
sunev: 那就不要用fft自己算試試? 09/17 22:54

你可能也想看看

搜尋相關網站