210 likes | 389 Views
LabVIEW を用いた. 生体情報の計測と分析. なぜ LabVIEW を用いるのか. 1.A/D 変換ボードなどのハードウェアを多数サポート LabVIEW は, NationalInstruments 製の多数のハードウェアをサポートし,計測環境の構築や,拡張,古い環境を新しい製品で置き換える,等の作業が非常に簡易であり,なおかつ確実に動作する.計測製品ベンダーとしての歴史が長く,シェアが広いので,ソフトウェアがこなれており,バグが少ない. 2. 豊富なライブラリを備えている
E N D
LabVIEWを用いた 生体情報の計測と分析
なぜLabVIEWを用いるのか 1.A/D変換ボードなどのハードウェアを多数サポート LabVIEWは,NationalInstruments製の多数のハードウェアをサポートし,計測環境の構築や,拡張,古い環境を新しい製品で置き換える,等の作業が非常に簡易であり,なおかつ確実に動作する.計測製品ベンダーとしての歴史が長く,シェアが広いので,ソフトウェアがこなれており,バグが少ない. 2.豊富なライブラリを備えている あらかじめデータの入出力,通信,計測,制御,分析等の大規模かつ高度なライブラリを備えており,自前で製作する部分を最小限に抑えられる.特に,生体情報を扱う上で重要な,フィルター関数や,周波数分析関連のライブラリが便利である. 3.グラフィカルで理解しやすいプログラミング プログラムの作成は,専用言語Gを用いて行われ,従来の文字を使った言語とは異なり,部品配置とワイヤーによる結線でほぼすべてのプログラムを行うことができる.プログラムの製作と,ユーザインタフェースの製作が一体化しているため,短時間で使いやすいソフトウェアを作成する事ができる.また,既存のライブラリは高速に動作するため,プログラムの実行速度は比較的速い.
A/D変換(連続データから離散データへ) コンピュータで生体情報を処理する場合,アナログである生体情報をデジタルに変換(A/D変換)し処理を行う.A/D変換は ・横方向の細かさ(サンプリングレート) ・縦方向の細かさ(変換精度) の二種類によって決まる.両者ともに,細かければ細かいほどに,データの再現性は高くなるが,細かくするほどデータ量が増え,処理や保存の点では多くの手間と時間がかかるようになる.生体情報を処理する場合,一般的には,1kHz(1秒間に1000個)のサンプリングレート,16bit(65536段階)の変換精度があれば十分である.
インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(1)インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(1) 4電極法により生体に微小高周波電流を流し,組織のインピーダンス(Z0)および血流によるインピーダンス変化分(ΔZ)を計測し,Kubicekらの理論に基づき心拍出量の算定を行う. SVを求めると,MBPおよび以下の式より MBP=CO×TPR MBP=SV×HR×TPR CO(心拍出量),TPR(全末梢抵抗)の推定が可能である.心的負荷により,心臓血管系に生じる反応は一様ではなく,刺激の質や量により影響をうける.また反応の形態には個人差があり,同様の心的負荷であっても,それにより生じるヘモダイナミクスの変化は個人間で異なる. 生理心理11巻2号(1993) インピーダンス・プレチスモグラフィー再訪より抜粋
インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(2)インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(2) 実験内容: 二種類の心的負荷(ストレスフィルム・暗算)を行い,それにより生じるヘモダイナミクスの変化を検討する. 被験者:男子大学院生 刺 激: ストレスフィルム(頭蓋全額部を切開する整形手術のビデオを視聴する) 暗算(1000から13ずつ,連続引き算を行う.) LabVIEWによる処理: ・ECG波形から,R波を検出する. ・ΔZ波形から,一次微分波形dZ/dtを得る. ・ノイズ対策のため,R波を基準にし,dZ/dtを50~100周期分加算平均する. ・加算平均されたECG,dZ/dt波形から,Q点,B点,X点を検出する. ・得られた値をKubicekらの式にあてはめ,SVを得る. ・血圧の波形から最高血圧,最低血圧を一拍ごとに求める. ・R-R間隔(すなわちHR),SV,MBPからTPRを求める.
インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(3)インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(3) ・ECG波形から,R波を検出する. ・ΔZ波形から,一次微分波形dZ/dtを得る.
インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(4)インピーダンスカーディオグラフィ-によるヘモダイナミクス分析(4) ・ノイズ対策のため,R波を基準にし,dZ/dtを50~100周期分加算平均する. ・加算平均されたECG,dZ/dt波形から,Q点,B点,X点を検出する.
msec 1200 1150 SV ml 1100 120 1050 1000 110 950 100 900 90 850 800 80 750 70 700 安静 暗算 安静 映像 60 50 安静 暗算 安静 映像 mmHg 140 120 CO TPR l/min dyne-seconds/cm-5 100 7 1400 80 6.5 1350 6 60 5.5 40 SBP 1300 DBP 5 20 MBP 4.5 1250 0 4 安静 暗算 安静 映像 1200 3.5 Flow ml/100g/min 3 1 2 3 4 5 6 7 8 1150 安静 暗算 安静 映像 安静 暗算 安静 映像 20 18 16 14 12 10 8 6 4 2 0 安静 暗算 安静 映像 結果1 IBI
IBI CO 1200 1150 9 1100 1050 8 1000 7 950 900 6 850 800 5 750 700 4 安静 映像 安静 暗算 3 安静 映像 安静 暗算 140 TPR 120 100 900 800 80 700 60 600 40 SBP SV 500 DBP 20 400 MBP 150 300 140 0 安静 映像 安静 暗算 130 200 120 100 110 Flow 0 100 安静 映像 安静 暗算 90 35 80 30 70 25 60 20 50 安静 映像 安静 暗算 15 10 5 0 安静 映像 安静 暗算 結果2 msec ml ml/100g/min mmHg l/min dyne-seconds/cm-5
計測にあたっての第一段階 new_env acquit ①“new_env”→“data”→自分用の新しいフォルダを作る ②“acquit+.vi”を開き,自分のフォルダを選択. ③メニューバーの設定を開いて,自分の計測環境を設定する. 計測プログラムが入っているフォルダ すべてが入っている フォルダ readit 読み出しプログラムが入っているフォルダ user1 data user2 データが入っているフォルダ user3 user4 ユーザごとにフォルダを分けて管理する
[channel 1 to 16] 入力設定を行うチャンネルを1~8もしくは9~16で切り替える.コネクタボックスのチャンネル数に一致(注:offlineでは,0~15になっている) [MIKE/PCI-6034E] マシンの名前/AD変換ボードの型版・・・これが映っていないということは, 認識されていないということ. 有効(ON)・無効(OFF)スイッチ・・・ONにすると、このチャンネルからの入力が有効になる. [scan order] 一部のノート用カード型AD変換ボードでは、この設定をreverseにする必要がある. “normal” ・・・デスクトップ型PC.1→8chの順に読み出す. “reverse” ・・・ノート型PCのとき.(ノートの場合,8→1の順で読み出す形式のものがあるため,逆にしておく.) [offset]微調整用. [range] 1V=1と出力させるときに “1.00” とする. 例えば血圧の場合,校正波は1V=100mmHgであるから,5V=500とするため “500.00” とする. メモ欄・・・設定についての各自のメモをするところ. [input Range ] 入力電圧の幅の設定.1Vもしくは5Vの選択が可能。すなわち,±32.768で読み込む範囲の設定. “±5” ・・・5V= 32.768 / -5V= -32.768 “±1” ・・・1V= 32.768 / -1V= -32.768 ↓ 血圧計の出力が,100mmHg=1Vのため,±5に設定しておく! [accuracy ] 使用しているAD変換ボードの変換精度を指定する. “16bit” ・・・通常はコレ.1個の計測値=16bit “12bit” ・・・古いPCは12bit しか対応できないものもある.そういう場合はこっち. [sampling rate (Hz) ] 何Hzでトレンドを保存するかの設定であり,読み出し用ファイル (read+it) に対する設定である.ここを100にすると, read+itでも100でしか読めない. ※ZCG解析用 (専用プラグラムファイル“offline”) に,これとは別に常に1kHzで保存がされている.→SVを算出するのが目的の場合は,あまり気にしなくてよい. [設定後] 1. 【 acquit+.vi → 設定→入力設定】
[plug list] 各指標の計測値算出のためのプラグを選択.ダブルクリックでチェックをつけると,そのプラグが使用可能となる. 例えば,ECGからHRを計算する場合,“HR_plug”を選択する.このプラグはまた,IBIも算出できる. HR→HR,IBI BP→SBP,DBP,MBP,HRなど PEP→PEP,HR,IBI Dummy→null(1-8) PV→Height,NPV,HR(top/bottom) Resp→Rate,Inspt,height,delay [計測中にデータを・・・] 全てのデータをディスクにセーブしながら実行するので動作速度が遅くなるが,計測終了時のデータ退避時間がなくなるという利点がある.マシンパワーに余裕があり、長時間の計測を行う場合はONにするとよいかも. [IPアドレス・・・] 一秒間に10回の頻度で、ネットワーク上の別のマシンに計測中の情報を転送可能.。バイオフィードバックなどの用途に使用. [計測後に・・・] セーブの有無の確認ダイアログについて. [label] 計測モニタに表示する際の,各チャンネルの名前を入力する.右側のボックスで波形の色を指定. [min & max] 指標の最小値と最大値を入力.0を中心にするため,±の異なる同じ値を入力する. [devices] 入力設定したチャンネルと,出力設定の前画面で選択したプラグの中から,計測モニタで表示するものを決定. [ch] 右側のスライドバーを移動させ,必要な数だけ表示する. [function] “devices”でプラグを選択した際に,モニタに表示する指標を選択する.左側の●をクリックして適当なものを選ぶ. 2. 【acquit+.vi →設定 →環境設定/出力設定】 [memo] 設定についてのメモ.
モニタの表示範囲 計測データの保存先が表示される.LabVIEWを起動した際に選択したフォルダが表示されるはず. [HR,BP・・・] “出力設定”の設定が表示される.計測値が実測値と同じかどうか確認. ここに全ての測定指標が表示される. 計測時間の表示. [記録開始] クリックで計測開始. [終了] 計測終了. [event] イベントマーカーの挿入. 3. 【acquit+.viの表示モニタ】
プラグを導出しているチャンネル 表示モニタのサイズ変更など. PEPのプラグのチャンネルは,必ず,ECGとZCGを選択する. 赤がECG 白がZCG →右図の黄色がdZ/dt [HR_plug] PEP算出の際の,B点が検出しづらい時に操作.オンラインでの確認用. [PEP_plug] [BP_plug] 4. 【acquit+.vi→アプリケー ション→プラグインを表示】
[実行] [offlineの表示モニタ] 分析対象ファイルが表示 “offset”・・・分析対象データの 始発ポイント “length”・・・分析時間の長さ “length”がバーとして表示. ECG & ZCG (dZ/dt) ,BPなどの各波形 フォルダ“offline”→実行(再生マーク)→目的のフォルダを選択してOK. [ファイル情報] SBP & DBP IBI,SBP,DBP,MBP,BFについて,“length”で設定した時間分の平均が表示. “add”をクリックすると,結果が図示される. “clear”しない限り,結果が追加される. “save”で保存. インピーダンスカーディオグラフィについては,値を求めてから保存する. 5. 【offline.vi】
[threshold] ECGがきちんと表示されないときに,値を変える. [lowpass] デジタルフィルターをかけるため,チェックを入れておく. [datadir] ここに表示されたパスにデータファイルが保存されている. 6. 【offline.vi】
B点,X点 マニュアル操作可能. B点 X点 ここにSVが表示. LabVIEWによる処理: ・ECG波形から,R波を検出する. ・⊿Z波形から,一次微分波形dZ/dtを得る. ・ノイズ対策のため,R波を基準にし,dZ/dtを50~100周期分加算平均する. ・加算平均されたECG,dZ/dt波形から,Q点,B点,X点を検出する. ・得られた値をKubicekらの式にあてはめ,SVを得る. ・血圧の波形から最高血圧,最低血圧を一拍ごとに求める. ・R-R間隔(すなわちHR),SV,MBPからTPRを求める. (Kubicekの推定式) SV≒rho・(L/Z0)2・LVET・dZ/dt(max) rho (ohm・cm )・・・135 (ohm・cm) を常に用いる.定数. L (cm)・・・背側と腹側の平均.25cm以上必要.巻尺で測定. Z0 (ohm)・・・インピーダンスアンプのデジタル数値. ※インピーダンスアンプの “sensitivity” は,0.2に設定(固定). 【offline.vi】
[direction] “up”・・・BP↑を防ためのHR↓ “down”・・・BP↓を防ためのHR↑ [brs] 計算結果 検出されたシーケンスの結果 ※シーケンスの数が,1ブロックあたり10以上ないとデータとして使えなそう・・・ 【offline.vi→オプション→BRS算出】