【发布时间】:2014-12-07 19:51:03
【问题描述】:
我正在做一些信号项目,我想做的就是对信号应用傅立叶变换,得到 magnitude 和 phases,然后更改 相位 矩阵到别的东西说 phasenew 然后从 magnitude 和 phasenew 获取信号。
我的代码基于Getting Fourier Transform from Phase and Magnitude - Matlab
>> F = fft(x);
>> mag = abs(F);
>> phase = angle(F);
% Calculate phasenew using some algorithm, phasenew is very similar to phase, so output should be same.
>> re = mag .* cos(phasenew);
>> im = mag .* sin(phasenew);
>> F_i = complex(re,im);
>> x_i = ifft(F_i);
输出信号x_i非常不同。
我在这里也发现了类似的问题:Fourier Transform: getting mag + phase then using those to plot original signal 但在此链接中,我评论了向@David 询问我应该如何着手解决 phasenew 的情况的答案。他建议我作为一个新问题提出这个问题,所以就在这里。
请帮助我使用傅立叶逆变换从原始幅度和新相位生成信号。 提前致谢。
附:在 phasenew 中,我只是将 phase 移动 π/2 或 -π/2。
【问题讨论】:
-
顺便说一句。如果您只是将相位移动一个常数,则与将原始输入乘以一个固定的复数常数相同。
标签: matlab image-processing matrix fft ifft