Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

リアルタイム ECG QRS 検出

この例では、心電図 (ECG) 信号の QRS 群をリアルタイムで検出する方法を説明します。この例では、モデルベース デザインを使用してアルゴリズムを開発、テスト、展開します。

はじめに

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

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

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

  • 基線変動

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

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

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

  • 電極接触ノイズ

ECG 信号ソース

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

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

  • 平均心拍数が 82 拍/分 (bpm) の健康な被験者からサンプリングされた、1 セットの実際の記録済み ECG データ。この ECG データは、12 ビット ADC に供給される前に、アナログ フロントエンド アプリケーションによって事前にフィルター処理され、増幅されています。

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

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

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

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

以下の図は、上記の 5 つのオプションから ECG 信号を選択できる、ECG Signal Selector ブロックのダイアログ ボックスを示しています。

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

この例では、入力 ECG 信号のサンプリング周波数が常に 200 Hz (200 サンプル/秒) であると仮定して Simulink で作成した、リアルタイム QRS 検出アルゴリズム ([1] の Lab 1、[3] および [4] を参照) を使用します。ただし、実際の記録済み ECG データのサンプリング周波数は、200 Hz ~ 1000 Hz の範囲でさまざまな値を取る可能性があります。たとえば、この例では 360 Hz です。サンプリング周波数の差異をなくすため、この例のモデルはサンプルレート変換器ブロックを使用してサンプル レートを 200 Hz に変換します。さらに、バッファー ブロックも使用して、入力 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.[モデルを開く] ボタンをクリックして、ex_ecg_sigprocessing.slx モデルを開きます。

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

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

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

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

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

参照

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

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

関連するトピック