Wrong object reconstruction in Projection Slice Theorem - aliasing or sampling problem?

2 views (last 30 days)
Hello. I'm working with the Projection Slice Theorem. Here is some theory about it: Link Page 12 upper slide. I find a problem which I try to solve for 3 days and I have no idea what is wrong. I managed to locate where the problem is. Please look at this code:
clear all
clc
a = [zeros(1,412) ones(1,200) zeros(1,412)];
adft = fftshift(fft(a)) ;
my_spectrum = zeros(1024,1024);
for k=1:1024
my_spectrum(k,k) = (adft(k)) ;
end
recon = (ifft2(ifftshift(my_spectrum))) ;
imagesc(abs(recon)) ;
I take 1 dimensional projection (here as an example rectangular function), then I calculate its FT. I fftshift it so that 0 freq. is in the middle. I create empty 2 dimensional spectrum, and I put "adft" diagonally in this spectrum (from upper left corner to lower right). Now I ifftshift my spectrum, so that it's 0 freq. will move to the corners and I ifft2 it. As I understand I should get as a reconstruction a rectangular function "projected" diagonally thgrough the center. But instead I get 2 such functions - non of which goes through the center. Is it some kind of aliasing or am I just doing something wrong? I will be very grateful for your help!

Accepted Answer

Matt J
Matt J on 28 Dec 2012
adft = fftshift(fft(ifftshift(a))) ;
  4 Comments
Renyuan Zhang
Renyuan Zhang on 27 Feb 2016
Thanks, Matt. Really helped me on my inverse radon transform program. It works better than the iradon() in Matlab. Thanks for mention the ifftshift().

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!