MATLAB Answers

0

How to prove that with separable 2D functions, 2D Fourier transforms are simply the product of the individual 1D Fourier transforms.

Asked by Sumin Kim on 15 Jan 2018
I try to prove that like this,
a1=[1,7,13,54,5,26];
a2=[7,1,3,1,61,52]';
b1= fft(a1);
b2= fft(a2);
b3= b1.*b2;
c1=a1.*a2;
c2= fft2(c1);
if b3==c2
"same"
else
"different"
end
but I'm failed.
I think there are some problems with dimension. Help me :(

  0 Comments

Sign in to comment.

Tags

1 Answer


Hi Sumin,
There does not seem to be an issue with the dimensions, but rather with the condition that you are using. Try the following:
if norm(vecnorm(b3-c2)) < 1e-5
"same"
else
"different"
end
The reason why you need to do this is because all the calculations made by "fft" are subject to numerical errors. So, when you are checking whether "b3" is equal to "c2", you should not expect all the decimal digits to match since both variables are matrices of doubles.

  0 Comments

Sign in to comment.