二維FFT頻譜的橫縱坐標意義?

一維FFT是頻率和幅度,那二維FFT每個點橫坐標、縱坐標有意義嗎?


我最近正好在做一篇與2D FFT有關的論文,算你運氣好:)

圖1為一個一般性的二維複數sinusoid函數的實部,其方程為:

s(x,y) = exp{left(j(2pi(u_0x+v_0y)+P)
ight)}

圖1:The real part of a complex sinusoid function(我的論文中涉及到2倍lambda_f,圖我懶得改了,這裡的lambda_f是指我畫出的紅色虛線長度的一半。)

u_0v_0分別為函數s(x,y)在水平方向和豎直方向的頻率,如果設:

lambda_u = frac{1}{u_0},lambda_v = frac{1}{v_0}

lambda_u,lambda_v分別為該函數在水平和豎直方向上的周期或者說波長,如圖1所示。在圖1中的圖片大小為128×128pixel,u_0 = frac{1}{36	extrm{pixel}},v_0 = frac{1}{48	extrm{pixel}}, 換句話說函數在兩個方向上的波長分別為lambda_u = 36	extrm{pixel},~lambda_v = 48	extrm{pixel}

圖2為s(x,y)對應的傅里葉變換f(u,v)的幅度譜。

圖2:函數s(x,y)的二維傅里葉變換f(u,v)的幅度譜A(u,v)。(由matlab的fft2函數計算並經過fftshift做頻譜平移後得到。)

理論上該幅度譜應該是一個理想的delta函數,也就是一個理想的尖脈衝,也就是:

f(u,v) = Fourier(s(x,y,u_0,v_0)) =delta(u-u_0,v-v_0)

但是考慮到精度和離散化的影響,所以用matlab的fft2函數做數值化計算後的結果是一個不太令人滿意的小亮斑,將就一下吧(原公式中的P會影響相位譜,但幅度譜是不變的。為了方便,這裡假設P=0吧。)。按照理論這個亮斑或者說脈衝函數的峰值應該在(128/36,128/48)的位置上。該亮斑到幅度譜的坐標原點的距離設為f_0,則有

f_0^2 = u_0^2+v_0^2

如果設:

lambda_f=frac{1}{f_0}

那麼你可以在圖1中找到lambda_f 的物理意義。在現實中的空間函數I(x,y),比如一張相片或者是一個地理分布圖,可以看做是最前面給出的多個具有不同參數(u_0,v_0)的函數s(x,y,u_0,v_0)的某種線性組合:

I(x,y) = sum_{u_0,v_0}alpha_{u_0,v_0}s(x,y,u_0,v_0)

考慮到傅里葉變換的線性特性,I(x,y)的傅里葉變換也將是我後面給出的f(u,v)的某種線性組合,只不過每個f(u,v)的亮斑的位置(u_0,v_0)和強弱alpha_{u_0,v_0}不同罷了。

F(u,v) = Fourier(I(x,y)) = sum_{u_0,v_0}alpha_{u_0,v_0}delta(u-u_0,v-v_0)

所以總結下來,2D fft的幅度譜橫縱坐標表示變換前的空間函數覆蓋的空間頻率,而其幅度譜的具體數值則是原函數在不同空間頻率上的能量分布。


二維傅里葉的橫縱坐標就是兩個方向上的頻率


推薦閱讀:

TAG:圖像處理 | 傅立葉 |