| 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の長さとスピード | ![]() |