4.1 二维离散傅里叶变换
令f(x, y)
表示一幅大小为M * N
的图像,其中x = 0, 1, 2, ···, M -1, y = 0, 1, 2, ···, N - 1
。
- f的二维离散傅里叶变换可表示为
F(u, v)
,如下:
其中u = 0, 1, 2, ···, M -1, v = 0, 1, 2, ···, N - 1
。频域系统时由F(u, v
所张成的坐标系,其中u、v
用做(频率)变量,由u = 0, 1, 2, ···, M -1, v = 0, 1, 2, ···, N - 1
定义的M * N
矩阵区域称为频率矩形。 - 离散傅里叶变换的逆变换为:
其中x = 0, 1, 2, ···, M -1, y = 0, 1, 2, ···, N - 1
,F(u, v)
的值有时称为傅里叶系数。 - 傅里叶频谱(即
F(u, v)
的幅度)定义为:
其中,R(u, v)
和I(u, v)
分别表示F(u, v)
的实部和虚部。 - 变换的相位角定义为:
其中,R(u, v)
和I(u, v)
分别表示F(u, v)
的实部和虚部。 - 此时,
F(u, v)
又可以用复数的极坐标表示为
- 功率谱定义为幅度的平方,所以
- 若
f(x, y)
是实数,则其傅里叶变换关于原点共轭对称,即
F(u, v) = F*(-u, -v)
其傅里叶频谱也关于原点对称
|F(u, v)| = |F(-u, -v)|
代入到F(u, v)
的等式中可得
F(u, v) = F(u + M, v) = F(u, v + N) = F(u + M, v + N)
即, DFT在u和v方向上都是周期无穷的,周期由M和N决定,周期性也是DFT逆变换的一个重要属性:
f(x, y) = f(x + M, y) = f(x, y + N) = f(x + M, y + N)
即,傅里叶逆变换得到图像也是周期无穷的,DFT实现仅计算一个周期,所以我们可处理大小为M * N 的数组。
4.2 在MATLAB中计算并可视化二维DFT
-
fft2函数
一个大小为M* N的图像数组f可以通过工具箱中的函数fft2
得到,简单语法为:
F = fft2(f)
该函数返回一个大小为M * N的傅里叶变换。
使用傅里叶变换进行滤波时,需要对输入数据进行零填充,此时有:
F = fft2(f, P, Q)
将所要求的0的个数对输入图像进行填充,以便结果函数的大小为P * Q。