音メディア処理研究室

 
Welch法による心拍変動の周波数解析とストレス診断

Welch法による心拍変動の周波数解析とストレス診断

2024年のデモ大会で発表した内容です。

【背景・目的】

近年、ストレスを抱える人が増加傾向にあります。その背景には、働き方の多様化や長時間労働、情報過多、社会的な孤立感、さらには経済的不安や環境問題など、複雑に絡み合う要因が存在します。特に、スマートフォンやSNSの普及により、情報が即座に手に入る便利さの一方で、過剰な情報が精神的負担を引き起こす「情報疲労」という新しいストレスの形も注目されています。

このような現代社会特有の問題に対処するため、私は聴診器を用いて心音を測定し、ストレスの有無を簡易的に診断するプログラムを作成しました。

【手法】

・RR間隔とは

心拍のピーク間(R波)の時間間隔のことです。R波は心音の「ドックン」の「ドッ」に該当します。この間隔の変動を解析することで、心拍変動を評価します。また、RR間隔で平均心拍数を計算した後に診断に使用します。

RR間隔の時系列データを周波数解析(Welch法)することで、低周波(LF)成分と高周波(HF)成分を分離します。

・LF (Low Frequency)とは
交感神経と副交感神経の両方の活動を反映する。低周波成分で0.04~0.15Hz

・HF (High Frequency)とは
副交感神経の活動を反映させ、心身を休ませるために活動性を抑えて回復、修復させるはたらきを持つ。呼吸サイクルに関連し、心拍に同調する。高周波成分で0.15~0.40Hz

・LF/HF比について
ストレス指標(交感神経の活性度)のことです。LFとHFの周波成分をLF/HFすることで求まります。

・Welch法とは
時系列データから複数のセグメントを分割し、各セグメントでPSDを推定し、最後にそれらの平均を計算する手法です。この手法を使用してLF、HF、LF/HF比を計算します。

【開発環境】

開発環境は以下の通りです。

・Python 3.12.4(心拍変動解析ライブラリpyHRV)を使用
・Audacity 2.4.2
・Visual Studio Code

サンプリング周波数を1000、バンドバスフィルタで0Hzから500Hzに設定して心音を録音し、LF/HF比と平均心拍数を使用して時間×周波数を総合的に判断します。

【デモ内容・測定方法】

差異があるか比較するために二分間心音計測とスマホアプリの「ストレス計測」というアプリを使用します。
このアプリはカメラに指をあてることで脈拍を計測してストレス計測をしています。

また、測定位置は左第5肋間鎖骨中線の心尖部に聴診器をあてて計測を行います。LF、HFの成分及び心音が最も聞こえやすい部位であるためです。

ストレスの有無については以下の手順で判断を行っています。
LF/HF比は0.55、心拍数は75を平常時の基準値として設定し、4つの段階に分類してストレスの有無を判断します。

LF/HF比が0.55未満かつBPMが75以下
「ストレスがある可能性は十分低い」

LF/HF比が0.55以上かつBPMが75以下
「ストレスがある可能性は低い」

LF/HF比が0.55未満かつBPMが76以上
「ストレスがある可能性は高い」

LF/HF比が0.55以上かつBPMが76以上
「ストレスがある可能性は十分高い」

【実験結果】

 

 

心拍数グラフの0~15秒付近は自作したプログラムと結果が異なりますが、正しく診断できていることが分かります。

【改善点・課題】

心理的要因を数値化することは個人差が大きいため、十分な精度を得ることが困難でした。
また、実際のデモ大会本番ではうまく診断が出来ませんでした。

 

デモ大会本番では「ストレスがある可能性は十分低い」と間違った診断結果が表示されました。

原因として以下があげられます。
・測定中に会話音などのノイズが入ってしまったため
・心音のBPMが早かったため、RR間隔をうまく検知することができず平均心拍数の計算に異常が起きた。
・録音音量が高く、音割れが起きたため

RR間隔を使用して平均心拍数を計算するのではなく、自己相関テンポグラムなどの技術を使用することでより正しく平均心拍数を計算することができるのではないかと考えます。今回は平均心拍数とLF/HF比を使用して診断を行いましたが、さらに血圧などの判断材料を増やすことで精度向上できる可能性があります。

« »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です