网上的说法:

要计算一个系统相频特性,就要用到反正切函数,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。 若一个角度从0变到2pi,但实际得到的结果是0~pi,再由-pi~0,在w=pi处发生跳变,跳变幅度为2pi,这就叫相位的卷绕。 unwrap(w)就是解卷绕,使相位在pi处不发生跳变,从而反应出真实的相位变化 " 查看 unwrap 的帮助文档可以发现 unwrap 还可以输入一个参数 tol,默认tol = pi。也可以根据情况修改下 tol。

以下纯属个人见解,若有错误,谢谢指正:

unwrap也就是如果前后两个数据之差大于默认值(一般为π,也可自己在调用函数时设定),那么就把第二个值加上或者减去2π,反正最终结果是它俩之差小于默认值即可。【特别注意】这个函数并不是把[-π,π]范围的数据变成[0,2π]的数据,感觉有点类似于让数据具有一定的单调性。

看看matlab里面的实例:

w = [0:.2:3,3.5:1:10];

p = [    0

-1.5728

-1.5747

-1.5772

-1.5790

-1.5816

-1.5852

-1.5877

-1.5922

-1.5976

-1.6044

-1.6129

-1.6269

-1.6512

-1.6998

-1.8621

1.7252

1.6124

1.5930

1.5916

1.5708

1.5708

1.5708 ];

semilogx(w,p,'b*-'), hold

a320751f3a0b7a3532e2f3cda898960a.png

当我进行unwrap以后:

6c0fd21bdc688b22e4813c6abc903b42.png

可以对比这两张图,第一张明显有跳变,而第二张就比较平滑,类似于单调性比较好。

此外unwrap的调用方法有三种,可以自己设置跳变的阈值,默认是π。

本文同步分享在 博客“风翼冰舟”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐