matlab中的unwrap有啥作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中的unwrap有啥作用相关的知识,希望对你有一定的参考价值。
要计算一个系统相频特性,就要用到反正切函数,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。若一个角度从0变到2pi,但实际得到的结果是0~pi,再由-pi~0,在w=pi处发生跳变,跳变幅度为2pi,这就叫相位的卷绕。
unwrap(w)就是解卷绕,使相位在pi处不发生跳变,从而反应出真实的相位变化 "
查看 unwrap 的帮助文档可以发现 unwrap 还可以输入一个参数 tol,默认tol = pi。也许你需要根据情况修改下 tol。 参考技术A 要计算一个系统相频特性,就要用到反正切函数,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。
若一个角度从0变到2pi,但实际得到的结果是0~pi,再由-pi~0,在w=pi处发生跳变,跳变幅度为2pi,这就叫相位的卷绕。
unwrap(w)就是解卷绕,使相位在pi处不发生跳变,从而反应出真实的相位变化 "
查看 unwrap 的帮助文档可以发现 unwrap 还可以输入一个参数 tol,默认tol = pi。也许你需要根据情况修改下 tol。 参考技术B unwrap函数会将绝对值超过pi的角度增加或减少(2*k*pi)角度后换算回(-pi,pi)区间中。 参考技术C 5年前到问题,相位解缠绕用的! 参考技术D 实际上MATLAB中unwrap函数通常是和angle函数配合使用的:
1. angle函数会返回一个数字或向量的相位,并且如果这个相位值没有在[-π,π]区间,则会自动加减一个±2nπ使得其值落回[-π,π]之间,例如假定一个信号为s=sin(150*pi/180),也即一个初始相位为150°的信号,那么如何用angle函数计算出该信号的相位呢?用如下命令即可:a=angle(s) *180/pi=150°(式子中乘以180/pi是将angle函数得到的弧度值转换成角度值)
如果s=sin(250*pi/180), 那么:
a=angle(s) *180/pi=-110° (其中-110°=250°-360°),也就是用angle函数他会将超出[-π,π]区间的相位值变换会[-π,π]区间
2. unwrap函数
unwrap的作用则是如果向量中相邻点的相位跃变≥pi,则通过±2nπ的方式使得相位跃变小于pi。假定一个信号向量为:
s=sin([10 150 270]*pi/180), 其中三个相位点分别为10°,150°,270°, 那么首先用angle函数求得其相位:
ph0=angle(s)*180/pi=[10 150 -90]
如果要计算unwrap的phase则通过如下表达式:
ph1=unwrap(angle(s))*180/pi=[10 150 270]
matlab中的eval有啥用?
参考技术Amatlab中eval()函数的功能就是将括号内的字符串视为语句并运行。
eval是Javascript内置函数,用于计算字符串表达式的值。例如eval("2+3") 返回的是5。
以上是关于matlab中的unwrap有啥作用的主要内容,如果未能解决你的问题,请参考以下文章
Python 3.8 - BeautifulSoup 4 - unwrap() 不会删除所有标签