numpy.unwrap
- numpy.unwrap(p, discont=None, axis=-1, *, period=6.283185307179586)[source]
-
Распаковка сигнала, с помощью дополнения больших дельт относительно периода.
Это распаковывает сигнал
p, изменяя элементы, у которых абсолютное различие с предшествующим элементом больше, чемmax(discont, period/2), на ихperiod-дополнительные значения.В случае по умолчанию, где
periodравно \(2\pi\), аdiscontравно \(\pi\), это распаковывает фазу в радианахp, так что соседние разности никогда не превышают \(\pi\) путем добавления \(2k\pi\) для некоторого целого числа \(k\).- Параметры:
-
- parray_like
-
Входной массив.
- discontfloat, необязательно
-
Максимальное различие между значениями, по умолчанию
period/2. Значения нижеperiod/2обрабатываются так, как если бы они былиperiod/2. Чтобы получить эффект, отличающийся от значения по умолчанию,discontдолжно быть больше, чемperiod/2. - axisint, необязательно
-
Ось, вдоль которой будет выполняться распаковка, по умолчанию последняя ось.
- periodfloat, необязательно
-
Размер диапазона, по которому входной сигнал перематывается. По умолчанию это
2 pi.Введено в версии 1.21.0.
- Возвращает:
-
- outndarray
-
Выходной массив.
Примечания
Если разрыв в
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.])
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.unwrap.html