【问题标题】:Inverse Fourier Transforms in Matlab [duplicate]Matlab中的逆傅立叶变换[重复]
【发布时间】:2016-07-26 14:21:36
【问题描述】:

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

%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);

我采用幅度和相位并得到虚部。然后我使用幅度公式,即Mag = sqrt((real)^2+(imaginary)^2) 来尝试求解实部。然后我做反向移位和反向傅立叶变换,希望得到图像......但我得到:

我真的需要帮助解决这个问题,有什么想法吗?

【问题讨论】:

  • 所有你需要做的就是参加z的IFFT。您不需要自己进行real 部分的IFFT。您还缺少 Mag 的虚数乘法。 @vsoftco 说得对。

标签: matlab fft


【解决方案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);

【讨论】:

  • 如果 OP 想要重建图像,他/她真正需要做的就是获取 z 的 IFFT(您更正的)。我不知道他/她为什么要分解为实部和虚部,然后再撤消转换,所以我同意你的cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
相关资源
最近更新 更多