我有一个调幅信号的测量值。我用 fft() matlab函数进行了分析。在我用“书”计算一切之后,我只有一个问题。调制信号的相位不合适。只有当我从计算的阶段中减去pi/2
时,才会得到正确的值。调制信号是第六个组成部分:
X [6] = -8.2257e + 001 -1.6158e + 002i
阶段(x [6])= atan(-8.2257e + 001 / -1.6158e + 002)= 1.0999
真正的阶段是:pahse(x[6])-pi/2 = -0.4709
为什么我必须减去pi/2
?
如果我使用atan2(imag(X(6)),real(X(6)))
- 第一张图片
如果我使用atan(imag(X(6))/real(X(6)))-pi/2
- 第二张图片
答案 0 :(得分:6)
您遇到象限模糊。超出该范围时,atan()
的范围为[-pi/2 ... +pi/2]
并重复。这意味着,当角度恰好位于圆的“另一侧”时,您无法唯一地确定角度的正确象限。
要避免此类事情,请使用angle
(或phase
)和/或atan2
(atan
的四象限版本):
>> X = -8.2257e+001 - 1.6158e+002i;
>> angle(X)
ans =
-2.041680802478084e+000
>> atan2(imag(X), real(X))
ans =
-2.041680802478084e+000