最小二乗法によるパラメータ同定奮闘記 2

この記事は,脳波からヒトの状態推定を可能にするモデルをどうにか作りたくて獅子奮闘している研究アーカイブ(自分用)です.
前回の記事はこちら.
(参考:「最小二乗法によるパラメータ同定奮闘記1」)

最小二乗法は演算処理にかかるコストがめちゃくちゃ低いので,パラメータ同定にかかる時間がかなり早いので使い勝手が良いです.
プログラムも組みやすいし,かなりメジャーなアルゴリズムなので説明コストも低いのが嬉しい.

具体的な内容をさらっと書くと,
脳波の持つ非線形性を,どうにか数値化できるようにするために非線形振動子によるモデリングを行なっています.
扱う非線形振動子は,1自由度系なので直感的に理解し易いです.

さてさて,前回の記事を読んでいただければ話は早いのですが,あまりうまくいかなかったので,パラメタ同定に工夫を入れます.
以下のように修正します.

修正の内容としては,

  • Running window内でFFT
  • ピークを1つ決める
  • 周波数帯域を上図に示すように分けておいて,ピークが属する帯域でIFFT
  • IFFTで得た1秒間の時系列波形を用いてパラメタ同定
  • モデル右辺の振動数はピークを与える

的な内容です.
ここ周波数帯域の説明を再度付け加えておくと,以下のような10つの帯域に分けてます.

  1. δ1 (0.5 – 2 Hz)
  2. δ1 (2 – 4 Hz)
  3. θ1 (4 – 6 Hz)
  4. θ2 (6 – 8 Hz)
  5. α1 (8 – 10 Hz)
  6. α2 (10 – 13 Hz)
  7. β1 (13 – 16 Hz)
  8. β2 (16 – 20 Hz)
  9. β3 (20 -25 Hz)
  10. β4 (25 – 30 Hz)

としました.

なので,IFFTを回した結果は,1秒 (512Hz)ごとにこうなります.

上の図は4秒間の一例ですが,本当は被験者ごとに240秒間あります.
1秒ごとの支配的な周波数帯域によるIFFT結果です.

今回は,このIFFT結果を用いてパラメタ同定を行ってみました.

被験者aだけの結果を一例として示します.

各パラメタの集中度の特徴が際立ったような気もしてます.
(赤が集中状態,緑が安静状態)

また,被験者ごとの各パラメタ値の相関に関しては,以下のような結果になりました.

このような結果になりました.
相変わらず線形性強度を示すパラメタA,Bは高い相関を示しているのが悔しいです.
まだまだ対応策を考えていきます.

周波数分解能をあげるか,モデルに与えるピークの数を増やすことで再度修正する方向を考えています.

以下はPythonプログラム

 

 

前回の記事はこちら
気になりましたら,読んでみてください!