Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: Strange object position after IFFT2
Posted:
Dec 27, 2012 4:56 PM


"Wojtek" wrote in message <kbi4o4$rbn$1@newscl01ah.mathworks.com>... > I think I start to understand where is the problem. The whole thing concentrates in this simple piece of code which I prepared as an example: > > 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 calculated 1D FFT of a square function. I placed in in the diagonal of my empty spectrum. The result (the reconstructed image "recon") should be (in my opinion) one square function going diagonally through the center. So why as a result I get two rectangular functions  not one?  First of all, the FT of a rectangular pulse is a sinc function, not another rectangular pulse. Then you're taking just one sample from that 1D FFT signal and copying it to the output spectrum, but that sample that you're taking out of the sinc varies line by line. I have no idea why you'd want to do this. Then you're taking the ifft2 of a shifted spectrum and I have no idea why. The fftshift if mainly to make things look good for display and you really need good bookkeeping if you're going to start FFT'ing a shifted version. Normally you don't, unless it makes filtering easier, but in your case it doesn't. Why don't you post in the Answers forum and Wayne or Greg can explain better to you why your algorithm is messed up. I can't even figure out what this is supposed to do  I think you might have been better off just leaving your first question since this code just seems weird and unrelated.



