Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 展开角度具有连续相位_Python_Numpy_Signal Processing_Complex Numbers_Phase - Fatal编程技术网

Python 展开角度具有连续相位

Python 展开角度具有连续相位,python,numpy,signal-processing,complex-numbers,phase,Python,Numpy,Signal Processing,Complex Numbers,Phase,假设我有一系列类似的相位: import numpy as np import matplotlib.pyplot as plt phase = np.linspace(0., 100., 1000) % np.pi plt.plot(phase) plt.show() (有许多像这样的不连续) 如何从中获得更多“连续”相位阵列? 当然,我已经尝试过: 或 但它保持完全相似: 我所期望的是这样的展开: 从np.的文件中展开: 通过更改大于的绝对跳跃来展开弧度相位p 不连续到其沿给定轴的2*

假设我有一系列类似的相位:

import numpy as np
import matplotlib.pyplot as plt
phase = np.linspace(0., 100., 1000) % np.pi
plt.plot(phase)
plt.show()
(有许多像这样的不连续)

如何从中获得更多“连续”相位阵列?

当然,我已经尝试过:

但它保持完全相似:

我所期望的是这样的展开:


np.的文件中展开

通过更改大于的绝对跳跃来展开弧度相位
p
不连续
到其沿给定轴的2*pi补码

但是向量中所有元素的2*pi补码都是值本身,因为没有值是每隔>2*pi的

试试这个:

phase = np.linspace(0., 20., 1000) % 2*np.pi

plt.figure()

plt.subplot(1, 2, 1)
plt.plot(phase)

plt.subplot(1, 2, 2)
plt.plot(np.unwrap(phase))

如果要保持原始相位的pi周期性,应首先将其加倍,展开,然后将其除以二:

plt.绘图(np.展开(2*相位)/2)

我的问题来自于我的真实代码中有一个2D数组
(n,1)
(没有注意到),而不是长度为1D数组
n
。然后参数

np.unwrap(phase, axis=0)
解决了


其他答案仍然有用,因为
2pi
pi
问题相对。

愚蠢的问题:为什么需要加倍和减半?它是否取决于“uncontr”的解析值?
phase = np.linspace(0., 20., 1000) % 2*np.pi

plt.figure()

plt.subplot(1, 2, 1)
plt.plot(phase)

plt.subplot(1, 2, 2)
plt.plot(np.unwrap(phase))
np.unwrap(phase, axis=0)