Mathematics | ![]() ![]() |
変換されたデータのゲインと位相
変換されたデータ列に関して重要な情報は、その大きさと位相です。MATLAB関数abs
とangle
は、この情報を計算します。
これを試すために、時間ベクトルt
を作成し、このベクトルを使って、異なる周波数をもつ2つの正弦波から構成されるデータ列x
を作成します。
t = 0:1/100:10-1/100; x = sin(2*
pi*
15*
t) + sin(2*
pi*
40*
t);
関数fft
を使ってデータ列のDFTを計算します。つぎのステートメントで、変換されたデータ列の大きさと位相を計算します。データの大きさを得るにはabs
で、位相情報はangle
を使います。そして、pi
より大きくてジャンプする位相に2*pi
補正を適用するにはunwrap
を使います
y = fft(x); m = abs(y); p = unwrap(angle(y));
f = (0:length(y)-1)'*100/length(y); subplot(2,1,1), plot(f,m), ylabel('Abs. Magnitude'), grid on subplot(2,1,2), plot(f,p*180/pi) ylabel('Phase [Degrees]'), grid on xlabel('Frequency [Hertz]')
大きさのプロットは、50ヘルツのNyquist周波数を中心に完全に対称になっています。信号の中の有益な情報は、0から50ヘルツの範囲に見られます。
![]() | はじめに | FFTの長さとスピード | ![]() |