Spec-Zone.ru › NumPy 1.21

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, необязательно

Ось, вдоль которой будет выполняться разворачивание; по умолчанию - последняя ось.

period: float, необязательно

Размер диапазона, по которому происходит обёртка входных данных. По умолчанию, это 2 pi.

Добавлена в версии 1.21.0.

Возвращает
outndarray

Выходной массив.

См. также

rad2deg, deg2rad

Примечания

Если разрыв в 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.unwrap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API