如何从FFT获得调幅信号的相位角

时间:2013-06-12 12:57:16

标签: matlab fft phase

我有一个调幅信号的测量值。我用 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/2if i use <code>atan2(imag(X(6)),real(X(6)))</code> if i use <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 - 第二张图片

1 个答案:

答案 0 :(得分:6)

您遇到象限模糊。超出该范围时,atan()的范围为[-pi/2 ... +pi/2]并重复。这意味着,当角度恰好位于圆的“另一侧”时,您无法唯一地确定角度的正确象限。

要避免此类事情,请使用angle(或phase)和/或atan2atan的四象限版本):

>> X = -8.2257e+001 - 1.6158e+002i;
>> angle(X)
ans =
   -2.041680802478084e+000
>> atan2(imag(X), real(X))
ans =
   -2.041680802478084e+000