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)