2017-08-11 9 views
0

私はMatlabのワークスペースで作成した合成信号のフーリエスペクトルの第2成分の周波数領域(fftを計算した後)で位相角を計算しようとしています。私は位相が0に等しいと確信しています(あなたがコードで見ることができます)が、私が得る結果はpi/2です。コードは次のとおりです。fft matlabの位相角の計算

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))); 

エラーの箇所は表示されません。

+0

は、なぜあなたは、位相がゼロであることを確信していますか? – applesoup

+0

標準正弦波(A * sin(wt +φ)、ここで、Aは振幅、wは周波数(ラジアン)、phiは初期位相)を考慮すると、2行目の信号の位相はゼロです。 –

+0

ああ、元のシーケンスがDFTの長さで周期的であることが分かります。私は答えを加えました - あなたの質問に答えますか? – applesoup

答えて

1

実際の周期的な位相の位相は、ビンの中心周波数(および位相オフセットなし)に対応する周波数のゼロ波がゼロであると誤解されています。元のシーケンスの一部であるを表す基底関数は、余弦関数である。 ( - PI/2×)

SIN(X)= COS:余弦波と正弦波のπ/ 2の位相オフセットが減算されなければならないを表現するために

したがって、ビン2の位相(元のシーケンスの周波数に相当)は-pi/2です。

(より完全な説明のためには、 this question on DSP.SEを参照してください。)

+0

はい、あなたの回答が私の質問に答えます。どうもありがとうございました! –