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

Elo*_*lod 3 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/2如果我使用<code>atan2(imag(X(6)),real(X(6)))</code>- 第一张图片</p>

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

<div class=

Rod*_*uis 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
Run Code Online (Sandbox Code Playgroud)