為什麼這篇傅立葉轉換matlab鄉民發文收入到精華區:因為在傅立葉轉換matlab這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者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
抱歉可能我表達沒有很清楚
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
現在是只有一條式子
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