Matlab中的逆傅里叶变换

时间:2014-05-29 18:57:14

标签: matlab fft

我已经从傅立叶变换中获得了幅度和相位,现在我被要求使用这些矩阵向后移动并再次重现图像。到目前为止,这是我的理解:

%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)来尝试求解真实部分。然后我做反向移位和反向傅里叶变换,希望得到图像...但我得到:

enter image description here

我真的需要帮助解决这个问题,任何想法?

1 个答案:

答案 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);