我已经从傅立叶变换中获得了幅度和相位,现在我被要求使用这些矩阵向后移动并再次重现图像。到目前为止,这是我的理解:
%Here we have the imaginary part
z = Mag.*cos(Phase) + 1i.*sin(Phase);
%Here we get the real part
real = sqrt((Mag).^2-(z).^2);
image = ifftshift(real);
image = ifft(image);
imshow(image);
我取得幅度和相位并得到想象的部分。然后我使用Magnitude公式,即Mag = sqrt((real)^2+(imaginary)^2)
来尝试求解真实部分。然后我做反向移位和反向傅里叶变换,希望得到图像...但我得到:
我真的需要帮助解决这个问题,任何想法?
答案 0 :(得分:1)
您对实部和虚部的计算不正确。我这样做:
z = Mag.*cos(Phase) + 1i*Mag.*sin(Phase); % full matrix of complex amplitudes
%Here we get the real part
real_part = real(z);
imag_part = imag(z); % do you need this at all?!
image = ifftshift(real_part); % not sure why you are doing this
image = ifft(image);
imshow(image);