【実践編】MATLABで信号をFFT解析する方法

FFT

YouTube動画

基本的には同じ内容ですが、データの作り方など、少し細かく紹介しています。

こちらも是非チェックしてみてください!

相変わらずMATLABのマニュアルが分かりづらいのでまとめておきます。コードはまとめてコマンドウィンドウに貼り付けてOK。

想定読者

  • MATLABでFFT解析をしたい方
  • Excelでデータの用意

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

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

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

    なお、それぞれの列の計算式は下記の通りです。

    • B列 "=SIN(2*PI()*A2)"
    • C列 "=SIN(2*PI()*3*A2)"
    • D列 "=SIN(2*PI()*10*A2)"
    • E列 "=SUM(B2:D2)"

    コピペすればExcelにそのまま貼り付けられるようになっています。また、私のGithubにもExcelファイルをアップしておくのでそちらもご利用下さい。
    https://github.com/buono/MATLAB_FFT

    MATLABでデータインポート

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

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

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

    信号を設定し、プロット

    今回は下記コードで0.002秒間隔で4秒までの信号を作った。

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

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