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 than
max(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 is
period/2.Values belowperiod/2are 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 is
2pi.New in version 1.21.0.
- Returns:
- outndarray
Output array.
Notes
If the discontinuity inp is smaller than
period/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.])