非接触呼吸数心拍数測定
ドップラセンサでバイオ測定を行ったのは2021年12月でした。
50秒間の測定信号測定データをFFT処理して、心拍領域と呼吸領域でピーク位置を求める
6時間連続測定するものでした。キットをお送りし測定にご協力頂き、その節はありがとう
ございました。OSASの兆候をつかむことができました。
今回はこの進化版です。デジタルフィルタを使って呼吸領域(0.3~1.5Hz)と心拍s領域
(1~3Hz)を別々のBPF処理により別々に信号を取り出しFFT処理を行うものです。
まず、通常のドップラ信号を取り出す装置を示します。(2021年12月時点に同じ)


今回のポイントであるデジタルフィルターについて説明します。FIRとIIRがありますが
信号を並列に展開するIIRフィルタを使用します。(時間遅れが少ない)
IIRフィルターは伝達関数に極を持ち発振するリスクがありますが、今回のような低周波領域
は安全です。なのでIIRフィルターを使用します。

IIRフィルタの設計は、http://dsp.jpn.org/dfdesign/fir/mado.shtml で、WEB上でパラメータ
設計ができます。試しに2つのフィルターのパラメータを抽出しました。

Arduinoでは IIRFliter.h というライブラリが用意されていて設計パラメータを
与えるだけでIIRフィルターを実装できます。生のドップラ信号に比べマイルドになっていることが判ります。

更に呼吸数15~90回/分(=0.25Hz~1.5Hz) と心拍数60~180回/分(=1~3Hz)
も考慮して設計しました。それぞれ得られた波形を示します。

フィルターが正常に起動するまでには、0.6秒程度のスタンバイ時間が必要なようです。
10msecサンプリングのプログラムコードとスタンバイタイムが必要な証拠を示します。

PC側でデータ受信しそれぞれの波形をグラフ表示するプログラムを示します。測定では3秒分のデータを無視します。(3秒無視+20秒測定=合計23秒)

20秒間の呼吸波形と心拍波形グラフを示します。

ドップラセンサの信号を2種類のIIRフィルタを通して呼吸波形と心拍波形に分離しました。次にこの信号にFFT処理を行いました。前回の測定表示プログラムコードにFFT処理部を追加しました。追加部のコードを示します。

オーバーサンプリングとバックグラウンド補正を加えたFFT処理を行い5Hz
(データ数:100個)以下の領域を示します。

原点(DC)付近に大きなピークがありますが、FFT波形は非常にきれいですね。
新たな処理として追加したのは、各波形信号の最小値を求めバックグラウンド補正をした
ものにFFT処理を行っています。これをしない場合、DCピークが支配的で検出領域のSN
比が下がってしまいます。各検出領域でピーク位置を検出します。ピーク検出コードを示します。

ここまでの処理の流れを纏めます。

非接触呼吸心拍数測定システムとしてGUIプログラムを作成しました。プログラムコードを示します。



20秒測定した後の出力画像を示します。
(実際のものはファイル名を指定する仕様ですが)

完成したプロト機(RS01)の写真を示します。
