我试图在Python中找到信号FFT中特定点的相位。此时得到的复数为
complex_num = -64.97135784885555 + 30.016069249920577j
使用python函数numpy.angle
,答案是2.7088133115162574弧度,以度为单位是155.20357023873785。但是当我计算numpy.arctan(img/real)
时,我得到的结果是**-0.43277934207353586**。为什么我得到两个不同的值?有人能解释一下我做错了什么吗?
进一步研究它,我发现这两个值可以是相同Angular 的等效表示。但我不明白为什么会这样。
3条答案
按热度按时间kgsdhlau1#
再解释一下
将弧度转换为度数:
np.rad2deg()
现在,如果你想表示这是第一个坐标加上
180
这与
np.angle(complex_num,deg=True)
完全相似希望这能澄清。
友情链接:
https://numpy.org/doc/stable/reference/generated/numpy.angle.html
https://numpy.org/doc/stable/reference/generated/numpy.arctan.html
kd3sttzy2#
你的假设是正确的。这两个值表示相同的Angular ,只是从不同的“视角”。
numpy.angle
返回值in the range [-pi, pi],而numpy.arctan
返回值in the range [-pi/2, pi/2],这就是返回值不同的原因。rm5edbpk3#
对于这样的计算,应该使用
numpy.arctan2(y, x)
而不是numpy.arctan(y/x)
:由于
arctan2
将真实的部和虚部作为单独的参数,因此它可以区分复平面的第二象限和第四象限。