4

我有幅度调制信号的测量值。我用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如果我使用 <code>atan2(imag(X(6)),real(X(6)))</code> 如果我使用 <code>atan(imag(X(6))/real(X(6)))-pi/2</code>

如果我使用atan2(imag(X(6)),real(X(6)))- 第一张图片

如果我使用atan(imag(X(6))/real(X(6)))-pi/2- 第二张图片

4

1 回答 1

7

You are experiencing quadrant ambiguity. The range of atan() is [-pi/2 ... +pi/2] with repetitions when going outside that range. This means, you cannot uniquely determine the correct quadrant of your angle, when that angle happens to be on the "other side" of the circle.

To avoid this sort of thing, use angle (or phase) and/or atan2 (the 4-quadrant version of atan):

>> X = -8.2257e+001 - 1.6158e+002i;
>> angle(X)
ans =
   -2.041680802478084e+000
>> atan2(imag(X), real(X))
ans =
   -2.041680802478084e+000
于 2013-06-12T14:00:45.970 回答