bie*_*nle 4 matlab signal-processing
我对随着时间的推移展开阶段有一个问题。
我有一个雷达,可以监视缓慢周期性移动的物体。从接收到的信号中,我想看到物体随时间变化的相位。随时间变化的相位信号是从 FFT 中提取的(在所有 FFT 的同一 FFT bin 中)。这是我得到的结果:

因为阶段被包裹,所以我需要对阶段进行展开。我使用 Matlab 命令“ unwrap ”来实现这一点。所以我得到:

该问题已标记为红色圆圈。在这里,我期望此时的信号能够被解开。但事实并非如此,原因是:
- From time sample NO. 42 -> 44, the phases take two time samples to being
wrapped, instead of only one (i.e between two consecutive time samples).
Because of this the phase-over-time signal are not unwrapped correctly.
Run Code Online (Sandbox Code Playgroud)
我还尝试使用另一种相位展开方法(自适应数值积分),但结果与使用Matlab 中的“ unwrap ”命令相同。
上面提到的问题是什么(这是一个众所周知的问题还是有任何名称)?当然,解决这个问题的方法是什么?
我非常感谢您的任何帮助!多谢。
小智 5
Matlab 的unwrap函数试图避免大于 的连续值之间的任何跳转tol。默认情况下,tol是 pi。您从 -1.644 到 -0.7 到 1.55 的跳跃不大于 pi,因此unwrap没有必要调整您的数据。请注意,即使 -0.7 不在那里,unwrap仍然不会调整您的数据,因为跳跃仍然小于 pi。
公差是 中的可选参数unwrap,可以设置:
unwrap(x,tol)
Run Code Online (Sandbox Code Playgroud)
我建议根据您的数据将容差设置为 pi/2 或 3*pi/4。
该unwrap文档可能有更多信息
http://uk.mathworks.com/help/matlab/ref/unwrap.html?refresh=true