numpy.unwrap #
- 麻木的。unwrap ( p , discont = None , axis = -1 , * , period = 6.283185307179586 ) [来源] #
通过取相对于该周期的大增量的补码来展开。
这通过改变与其前身的绝对差大于其 周期补值的元素来解包信号p 。
max(discont, period/2)
对于默认情况,其中period为\(2\pi\)和不连续是 \(\pi\),这会展开弧度相位p,使得相邻差值永远不会大于\(\pi\)通过增加\(2k\pi\)对于某个整数\(k\)。
- 参数:
- p类似数组
输入数组。
- 不连续浮动,可选
值之间的最大不连续性,默认为
period/2
。下面的值period/2
被视为period/2
。要获得与默认值不同的效果,discont应大于period/2
。- 轴int,可选
展开操作所沿的轴,默认为最后一个轴。
- 周期浮动,可选
输入环绕的范围的大小。默认情况下,它是 .
2 pi
1.21.0 版本中的新增功能。
- 返回:
- 输出数组
输出数组。
笔记
如果p中的不连续性小于
period/2
,但大于discont,则不会进行展开,因为取补码只会使不连续性更大。例子
>>> phase = np.linspace(0, np.pi, num=5) >>> phase[3:] += np.pi >>> phase array([ 0. , 0.78539816, 1.57079633, 5.49778714, 6.28318531]) # may vary >>> np.unwrap(phase) array([ 0. , 0.78539816, 1.57079633, -0.78539816, 0. ]) # may vary >>> np.unwrap([0, 1, 2, -1, 0], period=4) array([0, 1, 2, 3, 4]) >>> np.unwrap([ 1, 2, 3, 4, 5, 6, 1, 2, 3], period=6) array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.unwrap([2, 3, 4, 5, 2, 3, 4, 5], period=4) array([2, 3, 4, 5, 6, 7, 8, 9]) >>> phase_deg = np.mod(np.linspace(0 ,720, 19), 360) - 180 >>> np.unwrap(phase_deg, period=360) array([-180., -140., -100., -60., -20., 20., 60., 100., 140., 180., 220., 260., 300., 340., 380., 420., 460., 500., 540.])