我正在做一些信号项目,我想做的就是对信号应用傅里叶变换,获取幅度和相位,然后将相位矩阵更改为其他东西,比如phasenew,然后从幅度和phasenew获取信号。
我的代码基于从相位和幅度获取傅里叶变换 - 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非常不同。
我在这里也发现了类似的问题:傅立叶变换:获取 mag + 相位然后使用它们来绘制原始信号,但是在这个链接中,我评论了询问@David 关于我应该如何着手解决 phasenew 的情况的答案。他建议我把这个作为一个新问题来问,所以就在这里。
请帮助我使用逆傅立叶变换从原始幅度和新相位生成信号。提前致谢。
PS在phasenew中,我只是将相位移动π/2或-π/2。