Toggle

ハード

MATLABで信号をFFT解析する方法

相変わらずMATLABのマニュアルが分かりづらいのでまとめておく。

Excelでデータの用意

ここでは例として、Excelでそれぞれ周波数の異なるsinカーブを3つ用意。
今回は1Hz, 3Hz, 10Hzとした。
それを足し合わせたE列の信号(黄色)を解析対象とする。

スクリーンショット 2018 07 30 21 00 05

A列とE列だけ残し、CSVファイルとして保存する。

MATLABでデータインポート

MATLABで下記の通り、tとsumをそれぞれ配列としてインポート。

スクリーンショット 2018 07 30 21 05 22

スクリーンショット 2018 07 30 21 06 23

信号を設定し、プロット

今回は0.002秒間隔で4秒までの信号を作った。

T = 0.002; % サンプル周期
L = 2001; % 信号のポイント数(時間じゃないので注意!)
t = (0:L-1)*T; % 時間ベクトル

Y = fft(sum);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

Fs = 1/T;
F = Fs*(0:(L/2))/L;
plot(F,P1);

下記の通り、1Hz, 3Hz, 10Hzにピークがあるのが分かる。

スクリーンショット 2018 07 30 22 06 06

LEAVE A REPLY

*
*
* (公開されません)

Return Top