Из документации MATLAB , fft2
определяется как:
fft
в столбцах, затем fft
в строках.
Кроме того, если вы откроете код fft2
, вы найдете:
f = fft(fft(x,[],2),[],1);
Этот код может вам помочь:
clear;close all;clc;
Image = phantom(256);
f = double(Image);
%2D DFT
F1 = fft2(f);
M=size(f,1);
N=size(f,2);
% 2D FFT by twice 1D FFT
F2 = fft(fft(f,[],2),[],1);
% Difference between the results
diff = F2 - F1;
[min(min(diff)) max(max(diff))]
subplot(1,2,1)
imshow(30.*log(abs(fftshift(F1)) + 1),[])
title('FFT using fft2')
subplot(1,2,2)
imshow(30.*log(abs(fftshift(F2)) + 1),[])
title('FFT using fft twice')