はじめに
前回はスマートウォッチで脈拍を測ろうとして,結局センサを自作して測定しました.
https://lp-tech.net/articles/dsdkY
そのデータを元にストレスを検知する準備をしようと思います.
https://lp-tech.net/articles/dsdkY
そのデータを元にストレスを検知する準備をしようと思います.
脈拍とストレスの関係
*ここは前回の記事で取り上げた書籍を参考にしてください
脈拍などの生体信号は規則正しい一定間隔で生じているわけではなく,わずかにゆらいでいて,それによって生体の状態を知ることができます.
心拍変動は自律神経系や液性調節系による調節を受けており,自立神経のうち,交感神経は心拍数を上昇させる.一方で副交感神経は心拍数を低下させます.昼間は交感神経が,夜は副交感神経が支配的になり,ストレスを受けると交感神経が活発になります.
脈拍などの生体信号は規則正しい一定間隔で生じているわけではなく,わずかにゆらいでいて,それによって生体の状態を知ることができます.
心拍変動は自律神経系や液性調節系による調節を受けており,自立神経のうち,交感神経は心拍数を上昇させる.一方で副交感神経は心拍数を低下させます.昼間は交感神経が,夜は副交感神経が支配的になり,ストレスを受けると交感神経が活発になります.
脈拍の測定結果
脈拍計測データ
前回と同じ回路で計測しました.
筆者は極めて冷え性で,通常時は脈拍がほとんど検知されなかったため,
シャワーで体温を上げてから計測に挑みました.(統制がある実験は夏しかできないかもしれない,,,)
筆者は極めて冷え性で,通常時は脈拍がほとんど検知されなかったため,
シャワーで体温を上げてから計測に挑みました.(統制がある実験は夏しかできないかもしれない,,,)
上のグラフではわかりにくので,0から10秒間だけを見たグラフ
かなり上手くピークが検出できました.
かなり上手くピークが検出できました.
プログラム
beatRate_peak = beatRate - np.mean(beatRate) for i in range(beatRate.size): if beatRate_peak[i] < 0: beatRate_peak[i] = 0 peaks, _ = sig.find_peaks(y_peak, distance=75)
detectPeak.py
マイナス側のピークを検出しないために,平均値以下の値を0と見なして
ピーク間の最低距離distance=75としています.
今回のサンプリングレートが100Hzで前回の結果よりピーク間隔が0.8s程度だったので
この値にしています.
ピーク間の最低距離distance=75としています.
今回のサンプリングレートが100Hzで前回の結果よりピーク間隔が0.8s程度だったので
この値にしています.