中心差分で速度と加速度を計算して「時間FFT」を行うプログラム

脳波解析などの時系列波形ではよく,時間周波数解析がされるのですが,今回は脳波の電位の周波数解析だけではなく,その速度と加速度を算出し時間FFTを同時に行うプログラムの公開をしておきます.
脳波でなくても,時系列信号の周波数特性を知りたい時には有効です.
(研究で用いるプログラムのアーカイブです)

ペンのすけ

基本的に,金曜日は研究のアーカイブ記事を書くぞ!!

どのようなインプット-アウトプットか

以下のアニメーションは,プログラムを回した時に作成されるインプットーアウトプットです.

1番上の「実験値の生波形(脳波の電位)」の赤いスライドしている線が解析ウインドウです.

2〜4番目のグラフは解析ウインドウごとの周波数結果です!
現在は1秒ごとのデータで,4から30Hzのフィルタリングを施しています.

2番目のグラフが「電位の周波数
3番目が「速度の周波数
4番目が「加速度の周波数
の結果です.

一番最後のグラフは,「電位」,「速度」,「加速度」の周波数結果のピークを解析窓ごとにプロットしたものになります.
加速度の周波数結果は,電位に比べて非常に大きくなるのですね!
しかし,周波数結果の概形はほとんど変わらないようです.

Pythonプログラムについて

プログラムはPythonで記述しております.
以前質問があったので,ちょっと付け加えると,rowNっていうのは,解析するデータの列の指定になります.

ちなみに,速度と加速度は,電位の中心差分で算出してます.
また今度中心差分について詳しく記述します.

コメントアウトを適宜外して,調節すると,速度と加速度も表示することができますよ!

こんな感じです〜!
では,良い解析ライフをー!

プログラムの補足

2の累乗を判定する関数

上のコード中のこちらの関数について,

具体的な説明を以下で解説しましたので,是非ご覧ください.