簡體   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