在fft matlab中计算相位角



我正在尝试计算我在 Matlab 工作区中构建的合成信号的傅里叶频谱第二分量的频域中的相位角(在计算 fft 之后(。我确定相位等于 0(如您在代码中看到的那样(,但我得到的结果是 pi/2。代码如下:

t = 0:pi / 128:(2 * pi - pi / 128);
V = sin(t);
L = length(V);
n = 2^nextpow2(L);
Y = fft(V, n);
threshold = max(abs(Y))/10000;
Y(abs(Y)<threshold) = 0;
mag = abs(Y/n);
angle = rad2deg(atan2(imag(Y),real(Y)));

我没有看到错误在哪里。

您误以为频率对应于箱中心频率(并且没有相位偏移(的真实周期性正弦波的相位为零。表示原始序列实部的基函数是余弦函数。

要用余弦波表示正弦波,必须减去 pi/2 的相位偏移:

sin(x( = cos(x - pi/2(。

因此,箱 2 中的相位(对应于原始序列的频率(为 -pi/2。

(有关更全面的解释,请参阅 DSP.SE 上的此问题。

最新更新