Scilab 解包函数

Scilab unwrap function

p(1)= 0.
p(2)= 0.6771057
p(3)= 0.8277359
p(4)= 1.3828832
p(5)= 1.7971431
p(6)= 2.1882188
p(7)= 2.6911235
p(8)= 3.1073485
p(9)=-2.7161114
p(10)=-2.3440447
q=unwrap(p,2*%pi) 

给出了错误的结果。 -2*pi 已减去 p(2)。那是不正确的。 q(2)=-5.6060796

q  = 

0.
-5.6060796
-5.4554495
-4.9003021
-4.4860422
-4.0949665
-3.5920618
-3.1758368
-2.7161114
-2.3440447

我认为最新版本的 unwrap 中存在错误。您可以编辑其来源

--> edit unwrap

并注释掉第 102 行:

//wh = abs(ju)>5*abs(avL)

然后在编辑器中执行 unwrap.sci 来更新它的定义。在此修复之后,解包似乎在您的示例中运行良好:

p(1)= 0.
p(2)= 0.6771057
p(3)= 0.8277359
p(4)= 1.3828832
p(5)= 1.7971431
p(6)= 2.1882188
p(7)= 2.6911235
p(8)= 3.1073485
p(9)=-2.7161114
p(10)=-2.3440447
q=unwrap(p,2*%pi);
plot(1:10,p,1:10,unwrap(p,2*%pi))
legend("wraped","unwraped",2)