在网上和书上都看过一维FFT与二维FFT的关系,二维FFT相当于每一行做一维FFT后再每一列做一维FFT,可是我用MATLAB实现了一下,发现结果并不相同,代码如下:
clc;
close all;
clear all;
%生成一个32x32的单位矩阵
a = eye(32);
[m,n]=size(a);
%每一行分别做一维FFT
for i=1:m
b(i,:) = fft(a(i,:));
end
%行列翻转
c = transpose(b);
%每一行分别做一维FFT(由于翻转了,此时相当于每一列分别做一维FFT)
for i=1:m
d(i,:) = fft(c(i,:));
end
%行列翻转
e = transpose(d);
afft = fft2(a);
可以出来的"e" 和 “afft”的结果并不相同,是我理解错了吗?