Wrong object reconstruction in Projection Slice Theorem - aliasing or sampling problem?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Wojtek
am 28 Dez. 2012
Kommentiert: Renyuan Zhang
am 27 Feb. 2016
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!
0 Kommentare
Akzeptierte Antwort
Matt J
am 28 Dez. 2012
adft = fftshift(fft(ifftshift(a))) ;
4 Kommentare
Renyuan Zhang
am 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().
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Hilbert and Walsh-Hadamard Transforms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!