numpy.unwrap#

numpy.unwrap(p,discont=None,axis=-1,*,period=6.283185307179586)[source]#

Unwrap by taking the complement of large deltas with respect to the period.

This unwraps a signalp by changing elements which have an absolutedifference from their predecessor of more thanmax(discont,period/2)to theirperiod-complementary values.

For the default case whereperiod is\(2\pi\) anddiscont is\(\pi\), this unwraps a radian phasep such that adjacent differencesare never greater than\(\pi\) by adding\(2k\pi\) for someinteger\(k\).

Parameters:
parray_like

Input array.

discontfloat, optional

Maximum discontinuity between values, default isperiod/2.Values belowperiod/2 are treated as if they wereperiod/2.To have an effect different from the default,discont should belarger thanperiod/2.

axisint, optional

Axis along which unwrap will operate, default is the last axis.

periodfloat, optional

Size of the range over which the input wraps. By default, it is2pi.

New in version 1.21.0.

Returns:
outndarray

Output array.

Notes

If the discontinuity inp is smaller thanperiod/2,but larger thandiscont, no unwrapping is done because takingthe complement would only make the discontinuity larger.

Examples

>>>importnumpyasnp>>>phase=np.linspace(0,np.pi,num=5)>>>phase[3:]+=np.pi>>>phasearray([ 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.])
On this page