如何在matlab中将atan2函数从-inf重新定义为inf?

时间:2013-11-17 19:51:28

标签: matlab phase atan2

我有一个旋转矢量R(x(t), y(t)),我想找一个角度作为时间的函数。 atan2-pipi之间确定,但是我分析所有动态并不方便。那么,有没有办法将atan2-inf扩展到inf

2 个答案:

答案 0 :(得分:6)

您的问题不是很明确,但我猜您正在搜索unwrap函数。这将纠正您的矢量通过负x轴旋转时获得的所有2 pi跳跃。你这样使用它:

t = linspace(0,3,1000);
x = cos(2*pi*t);
y = sin(2*pi*t);
phi = atan2(y,x);
unwrapped_phi = unwrap(phi);
plot(t, phi, t, unwrapped_phi)
xlabel('time (s)')
ylabel('angle (rad)')
legend('wrapped angle','unwrapped angle')

enter image description here

答案 1 :(得分:0)

我相信你正在寻找phase unwrapping。 Matlab已准备好一维解决方案,有关详细信息,请参阅unwrap