简体   繁体   English

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

[英]How to get phase angle from FFT for an amplitude modulated signal

I have the measurements of an amplitude modulated signal. 我有一个调幅信号的测量。 I analysed with the fft() matlab function. 我用fft() matlab函数分析了。 After I calculate everything by "the book", I have only one problem. 在我用“书”计算一切之后,我只有一个问题。 The phase of the modulated signal is not ok. 调制信号的相位不合适。 Only if I subtract pi/2 form the calculated phase, I get the correct value. 只有当我从计算的相位中减去pi/2 ,才能得到正确的值。 The modulated signal is the sixth component: 调制信号是第六个组成部分:

X[6]= -8.2257e+001 -1.6158e+002i X [6] = -8.2257e + 001 -1.6158e + 002i
phase(x[6])=atan(-8.2257e+001/-1.6158e+002)= 1.0999 阶段(x [6])= atan(-8.2257e + 001 / -1.6158e + 002)= 1.0999

The true phase is: pahse(x[6])-pi/2 = -0.4709 真正的阶段是: pahse(x[6])-pi/2 = -0.4709

Why i have to subtract pi/2 ? 为什么我要减去pi/2 如果我使用<code> atan2(imag(X(6)),real(X(6)))</ code>如果我使用<code> atan(imag(X(6))/ real(X(6))) -  pi / 2 </ code>

if i use atan2(imag(X(6)),real(X(6))) - first image 如果我使用atan2(imag(X(6)),real(X(6))) - 第一张图像

if i use atan(imag(X(6))/real(X(6)))-pi/2 - second image 如果我使用atan(imag(X(6))/real(X(6)))-pi/2 - 秒图像

You are experiencing quadrant ambiguity. 您遇到象限模糊。 The range of atan() is [-pi/2 ... +pi/2] with repetitions when going outside that range. atan()的范围是[-pi/2 ... +pi/2] ,当超出该范围时重复。 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 ): 要避免这种情况,请使用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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM