Hi Ziv,
yes, it works similarly.
m = 5;
n = 6;
q = 4;
A = randi(m,n,q);
B = randi(m,n,q);
C = zeros(size(A));
for j = 1:n
for k = 1:q
C(j,k) = sum(circshift(A,[1,1]).*circshift(B,[j,k]),'all'); % [1 1] adjusts the indexing
end
end
C
ifft2(fft2(A).*conj(fft2(B))) % agrees with C
