【数学建模】由张量模-n展开到高维傅里叶变换(附代码)

由傅里叶变换到二维傅里叶变换

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 &#

猜你喜欢

转载自blog.csdn.net/wenyusuran/article/details/123553826