python – 删除相角不连续的最简单方法是什么
发布时间:2020-12-20 11:30:47 所属栏目:Python 来源:网络整理
导读:说我想画一个相位数组 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]. 我知道我可以有一个循环去除这种不连续性.但我想知道是否有更优雅的
说我想画一个相位数组
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |