美文网首页
5、二维离散傅里叶变换

5、二维离散傅里叶变换

作者: sumpig | 来源:发表于2019-03-27 09:02 被阅读0次

1、概念

f(x, y) 表示一幅大小为 M*N 像素的数字图像,其中 x=0,1,2,...,M-1,y=0,1,2,...,N-1
其二维离散傅里叶变换(DFT)为
F(u, v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x, y)e^{-j2\pi(ux/M+vy/N)}
离散傅里叶反变换(IDFT)为
f(x, y)=\frac{1}{MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u, v)e^{j2\pi(ux/M+vy/N)}
R(u, v)I(u, v) 分别表示 F(u, v) 的实部和虚部, 则傅里叶谱定义为
|F(u, v)|=[R^2(u, v)+I^2(u, v)]^{1/2}
变换的相角定义为
\phi(u, v)=arctan[\frac{I(u, v)}{R(u, v)}]
极坐标下表示复函数 F(u, v)
F(u, v)=|F(u, v)|e^{-j\phi(u, v)}
功率谱定义为幅度的平方
P(u, v)=|F(u, v)|^2=R^2(u, v)+I^2(u, v)
如果 f(x, y) 是实函数, 则其傅里叶变换关于远点共轭对称
F(u, v)=F^*(-u, -v)
其傅里叶谱也关于原点对称
|F(u, v)|=|F(-u, -v)|
DTF 和 IDTF 的周期性
F(u, v)=F(u+k_1M, v)=F(u, v+k_2N)=F(u+k_1M, v+k_2N)
f(x, y)=f(x+k_1M, y)=f(x, y+k_2N)=f(x+k_1M, y+k_2N)
变换居中
f(x, y) * (-1)^{x+y}


2、matlab 中计算 DFT

  • 快速傅里叶变换(FFT)
F = fft2(f);

使用傅里叶变换滤波时,需要对输入数据进行零填充。语法为

F = fft2(f, P, Q);

P , Q 为函数结果大小。

  • 傅里叶谱
S = abs(F);
imshow(S, [])
  • 居中变换
Fc = fftshift(F);
F = ifftshift(Fc); %居中反转
  • 相角
phi = atan2(I, R);
phi = atan2(imag(F), read(F));
phi = angle(F);
F = S .* exp(i*phi);
  • 傅里叶反变换
f = ifft2(F);

相关文章

网友评论

      本文标题:5、二维离散傅里叶变换

      本文链接:https://www.haomeiwen.com/subject/wueruqtx.html