このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
胎児心電図への適応ノイズ キャンセリング (ANC) の適用
この例では、適応ノイズ キャンセリングを使用する適応フィルターにより、ノイズを除去する方法を示します。この例では、例を開き、コマンド adaptiveNoiseCancellationExampleApp
を入力して起動できる UI (ユーザー インターフェイス) を使用します。詳細は、後述の「アーキテクチャ例」の節を参照してください。
はじめに
適応ノイズ キャンセリングでは、測定信号 d(n) に次の 2 つの信号が含まれています。
目的の不明な信号 v(n)
干渉信号 u(n)
ここでの目的は、干渉信号と高い相関関係のある基準信号 x(n) を使用して、測定信号から干渉信号を除去することです。ここで取り上げる例は、胎児心電図への適応フィルターの適用です。この場合、母体の心拍信号が胎児の心拍センサー信号から除去されます。適応フィルターとそのアプリケーションの詳細については、適応フィルターとアプリケーションの概要を参照してください。この例は、Widrow らによる『Adaptive noise canceling: Principles and applications』(Proc.IEEE(R)、vol. 63、no. 12、pp.1692 ~ 1716、1975 年 12 月) を基にしています。
次のブロック線図は、胎児心拍信号からノイズ除去を実行するための適応フィルターの使用方法を示しています。
クリアな母体心拍信号の作成
この例では、サンプル レートが 4,000 Hz の信号を使用して、母体と胎児の両方の心電図の形状をシミュレーションします。この信号の心拍は毎分約 89 回で、信号のピーク電圧は 3.5 ミリボルトです。
クリアな胎児心拍信号の作成
胎児の心拍は母体の心拍よりも顕著に速く、毎分 120 ~ 160 回の範囲です。胎児心電図の振幅も母体心電図の振幅よりも弱くなります。この例では、胎児の心拍をシミュレーションするために、毎分 139 回の心拍と 0.25 ミリボルトのピーク電圧に相当する心電図信号を作成します。
測定された母体心電図
母体の心電図信号は、母体の胸部から取得されます。このタスクにおける適応ノイズ キャンセラーの目的は、胎児の心電図信号から母体の心拍信号を除去することです。このタスクを実行するには、母体の心電図から生成された基準信号が必要です。さらに、少量の無相関ガウス ノイズを追加して、ユーザー インターフェイスから制御できる測定内の広帯域ノイズ発生源をシミュレーションします。
測定された胎児心電図
母体の腹部で測定された胎児心電図信号は、通常、腹部の胸腔から伝播する母体の心拍信号よりも弱いものです。この伝播パスを 10 のランダムな係数で線形 FIR フィルターとして記述します。この FIR フィルターが適用された母体心拍信号が加わることで、測定信号と基準信号の間に相関が生じ、推測信号を除去するための適応フィルターを適応できるようになります。母体の心電図信号と同様に、胎児の心電図信号にもユーザー インターフェイスから制御できる加法性広帯域ノイズが含まれます。
適応ノイズ キャンセラーの適用
そのタスクを実行するために、適応ノイズ キャンセラーでは、任意の適応アルゴリズムを使用できます。例をシンプルにするために、15 の係数と 0.00007 のステップ サイズを含む最小平均二乗 (LMS) 適応フィルターを使用します。これらの設定で、適応ノイズ キャンセラーは、適用後数秒で適切に収束します。
胎児心拍信号の復元
適応フィルターの出力信号 y(n) には、ここでの最終的な目的信号ではない母体の推定心拍信号が含まれます。システムが収束した後に誤差信号 e(n) に残っているのは、胎児の心拍信号の推定と残差測定ノイズです。誤差信号を使用して胎児の心拍を推定できます。
アーキテクチャ例
コマンド adaptiveNoiseCancellationExampleApp
はシミュレーションを対話的に実行するように設計されたユーザー インターフェイスを起動します。母体と胎児の心拍の測定ノイズをこのインターフェイスから制御できます。また、測定された胎児心拍および母体心拍と、抽出された胎児心拍を表示する時間スコープも起動します。
生成された MEX ファイルの使用
MATLAB Coder™ では、コマンド HelperAdaptiveNoiseCancellationCodeGeneration
を実行して主要な処理アルゴリズムの MEX ファイルを生成できます。生成された MEX ファイルは、コマンド adaptiveNoiseCancellationExampleApp(true)
を実行して使用できます。