繁体   English   中英

在MATLAB中计算相角

[英]Computing phase angle in 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)。

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

(有关更详尽的说明,请参阅DSP.SE上的此问题 。)

暂无
暂无

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

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