python – 删除相角不连续的最简单方法是什么

python – 删除相角不连续的最简单方法是什么,第1张

概述说我想画一个相位数组 ph = [1, 40, 80, 179, -173, -150, -90, -40, -3, 3] on an X-Y plot. [179,-173]之间的跳跃是如此可怕,以至于我使用mod(ph 360,360)来摆脱它.然而,这使得[-3,3]变为[357,3]. 我知道我可以有一个循环去除这种不连续性.但我想知道是否有更优雅的方式. 您应该研究一维相位展开.在Mat 说我想画一个相位数组

ph = [1,40,80,179,-173,-150,-90,-40,-3,3] on an X-Y plot.

[179,-173]之间的跳跃是如此可怕,以至于我使用mod(ph 360,360)来摆脱它.然而,这使得[-3,3]变为[357,3].

我知道我可以有一个循环去除这种不连续性.但我想知道是否有更优雅的方式.

解决方法 您应该研究一维相位展开.在Matlab中有一个 unwrap函数和Python中类似的 numpy.unwrap用于弧度参数.在Matlab中:

ph = [1,3];ph2 = unwrap(ph*pi/180)*180/pi

返回:

ans =  Columns 1 through 7    1.0000   40.0000   80.0000  179.0000  187.0000  210.0000  270.0000  Columns 8 through 10  320.0000  357.0000  363.0000

如果要查看代码或者您确实需要特定于度的版本,请在命令窗口中键入edit unwrap.这是矢量输入的简化版本(有关每行的详细注释,请参阅unwrap):

function p = unwrap_deg(p)m = length(p);dp = diff(p,1);dps = mod(dp+180,360)-180;dps(dps==-180 & dp>0) = 180;dp_corr = dps-dp;dp_corr(abs(dp)<180) = 0;p(2:m) = p(2:m)+cumsum(dp_corr);

然后

ph = [1,3];ph2 = unwrap_deg(ph)

返回

ans =     1    40    80   179   187   210   270   320   357   363
总结

以上是内存溢出为你收集整理的python – 删除相角不连续的最简单方法是什么全部内容,希望文章能够帮你解决python – 删除相角不连续的最简单方法是什么所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存