由傅里叶变换到二维傅里叶变换
MATLAB自带一个快速傅里叶变换函数: fft ,对于列向量a,对其进行快速傅里叶变换的本质就是左乘一个DFT矩阵(设为F),不太规范的来写就是:
fft(a)=F*a;
MATLAB也自带一个二维傅里叶变换函数: fft2 ,同时官网也给出了其本质,就是每个方向都做一次傅里叶变换,对于矩阵A,对其进行二维傅里叶变换即可表示为:
fft2(A)=fft(fft(A).').';
(值得一提的是MATLAB中'表示共轭转置,.'表示不共轭但转置)
当然,如果我们能获得F矩阵的话,我们可以直接将fft2(A)表示为F*A*F,这其实非常简单,我们只需要往fft中带入单位矩阵即可,因为fft(E)=F*E=F,因此二维傅里叶变换还可以这样表示:
fft2(A)=fft(A)*fft(eye(n))
MATLAB实现三种二维傅里叶变换
A=[1 2 3;4 5 6;7 8 9] fft2A1=fft2(A) fft2A2=fft(fft(A).').' fft2A3=fft(A)*fft(eye(3))
A =
1 2 3
4 5 6
7 8 9
fft2A1 =
45.0000 &#