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

7 vues (au cours des 30 derniers jours)
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 :(

Réponses (1)

Emmanouil Tzorakoleftherakis
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.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!