最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

リアルタイム ECG QRS 検出

この例では、心電図 (ECG) 信号の QRS 群をリアルタイムで検出する方法を説明します。アルゴリズムの開発、テストおよび配布に役立つように、モデル ベース デザインが使用されます。

はじめに

心電図 (ECG) は、心臓の電気的活動によって発生する体表電位の記録です。臨床医は、ECG の記録から患者の心臓の状態と総合的な健康状態を判断し、診断を進めることができます。

次の図 [1] は標準的な ECG の波形です。QRS 群の生理的変動性と実際の ECG 信号に存在するさまざまな種類のノイズのために、QRS 群を正確に検出することは困難です。

生の ECG 信号を破損させるノイズ源には以下のものがあります。

  • 基線変動

  • 電力線干渉 (50 Hz または 60 Hz)

  • 筋電位 (EMG) または筋雑音

  • 電極運動に起因するアーティファクト

  • 電極接触ノイズ

ECG 信号ソース

生物医学信号処理アルゴリズムの開発とテストでは、主に次の 3 つのソースの ECG 信号が使用されます。1) 生物医学データベース (MIT-BIH Arrhythmia Database など) や、その他の事前に記録された ECG データ、2) ECG シミュレーター、3) リアルタイムの ECG データ収集。

この例では、次の事前に記録された ECG 信号とシミュレートされた ECG 信号が使用されます。信号のサンプリング周波数はすべて 360 Hz です。

  • 1 分あたりの平均心拍数が 82 (bpm) の健康な被験者の記録である ECG 実データを 1 セット。この ECG データは、12 ビット ADC に供給する前に、アナログ フロント エンドであらかじめフィルター処理して増幅してあります。

  • 45 bpm ~ 220 bpm の範囲のさまざまな平均心拍数を合成した ECG 信号を 4 セット。ECGSYN を使用して、MATLAB で合成 ECG 信号を生成します。

以下は、合成 ECG データの生成のための設定です。

  • サンプリング周波数: 360 Hz

  • 加法的な一様分布の測定ノイズ: 0.005 mV

  • 心拍数の標準偏差: 1 bpm

ECG 信号の事前処理およびフィルター処理

リアルタイム QRS 検出アルゴリズム ([1] の Lab 1、[3] および [4] を参照) は、Simulink 内で、入力 ECG 信号のサンプリング周波数が常に 200 Hz (すなわち 200 サンプル/秒) であると仮定して開発されます。ただし、記録済みの実 ECG データのサンプリング周波数は、200 Hz ~ 1000 Hz の範囲でさまざまな値を取る可能性があります。たとえば、この例では 360 Hz です。サンプリング周波数の差異をなくすため、サンプルレート変換器ブロックを使用してサンプルレートを 200 Hz に変換します。Buffer ブロックを挿入し、入力 ECG 信号の長さが、計算されたサンプルレート変換器ブロックの間引き係数の倍数になるようにします。

ECG 信号をフィルター処理し、QRS 周波数帯域のエネルギーの推定値にウィンドウを適用して生成します。フィルター処理演算は次のステップで行われます。

1.5 ~ 26 Hz の通過帯域で FIR バンドパス フィルター処理

2.バンドパス フィルター処理後の信号を微分

3.信号の絶対値を取得

4.80 ms ウィンドウ全体の絶対値の平均を算出

ECG 信号のリアルタイム QRS 検出

QRS 検出ブロックは、フィルター処理された ECG 信号のピークをリアルタイムで検出します。検出しきい値は、平均 QRS ピークと平均ノイズ ピークの平均推定に基づいて自動的に調整されます。検出されたピークは、しきい値を超えるかどうかによって QRS 群とノイズに分類されます。

次の QRS 検出規則は、[4] において実現されている PIC ベースの QRS 検出器を参照しています。

規則 1. 大きなピークの前後 196 ms (306 bpm) より近くで発生する、これより小さいすべてのピークを無視する。

規則 2. ピークが発生した場合、生の信号に正と負両方の勾配が含まれているかを確認する。そうなっている場合、発見したピークをレポートする。そうでない場合、ピークはベースライン シフトを表す。

規則 3. ピークが検出しきい値より大きい場合は QRS 群として分類する。そうでない場合はノイズとして分類する。

規則 4. 1.5 RR 間隔内に QRS が検出されず、ただし、検出しきい値の半分より大きいピークがあり、そのピークが前の検出の少なくとも 360 ms 以内にあった場合、そのピークを QRS 群として分類する。

シミュレーションおよび配布

1.モデル例を開きます。

2.MATLAB® 内の現在のフォルダーを書き込み可能なフォルダーに変更します。

3.モデルのツール ストリップ上で、[実行] をクリックしてシミュレーションを開始します。HeartRate の表示と生およびフィルター処理された ECG 信号をスコープで観察します。ここでは、ピークの更新、しきい値および推定平均心拍数も示されます。

4.ECG Signal Selector ブロックのダイアログを開きます。ドロップダウン メニューの ECG 信号平均心拍数を選択します。[適用] をクリックし、スコープと HeartRate の表示でリアルタイムの検出結果を観察します。

5.[停止] をクリックしてシミュレーションを終了します。

6.ターゲット ハードウェアを選択した後で、ECGSignalProcessing サブシステムからコードを生成してターゲットに配布することができます。

参考文献

[1] Biomedical Signal and Image Processing, MIT open courseware

[2] ECGSYN: A realistic ECG waveform generator

[3] J. Pan and W. Tompkins, A Real-Time QRS Detection Algorithm, IEEE Transactions on Biomedical Engineering, 32(3): 230-236, March 1985

[4] Patrick S. Hamilton, EP Limited: Open Source ECG Analysis Software, 2002