FIR フィルター

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

信号処理用の有限インパルス応答フィルターを作成します

カテゴリ: データ変換/フィルター

注意

適用対象: Machine Learning Studio (クラシック)のみ

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

この記事では、Machine Learning Studio (クラシック) のfir フィルターモジュールを使用して、有限インパルス応答(FIR) フィルターと呼ばれる種類のフィルターを定義する方法について説明します。 FIR フィルターには信号処理で多くの用途がありますが、FIR フィルターは線形位相応答を必要とする用途で最もよく使用されます。 たとえば、医療で使用される画像にフィルターを適用して、全体的な画像をシャープにしたり、ノイズを除去したり、イメージオブジェクトに焦点を当てることができます。

注意

フィルターは、入力信号を受け取り、フィルター特性に基づいて出力シグナルを作成する転送関数です。 デジタル信号処理でのフィルターのユーザーの全般的な情報については、「 フィルター」を参照してください。

デジタル信号処理フィルターを定義したら、データセットとフィルターを適用してフィルターを 適用 することにより、データにフィルターを適用できます。 同様のデータセットで再利用するためのフィルターを保存することもできます。

ヒント

データセットのデータをフィルター処理するか、欠損値を削除する必要がありますか? 代わりに、次のモジュールを使用します。

  • 欠損データのクリーンアップ: 欠損値を削除したり、欠損値をプレースホルダーで置き換えたりするには、このモジュールを使用します。
  • パーティションとサンプル: このモジュールを使用して、日付の範囲、特定の値、正規表現などの条件によってデータセットを分割またはフィルター処理します。
  • クリップ値: 範囲を設定し、その範囲内の値のみを保持するには、このモジュールを使用します。

FIR フィルターを構成する方法

  1. FIR フィルターモジュールを実験に追加します。 このモジュールは、[ データ変換] の [ フィルター ] カテゴリで確認できます。

  2. [ 順序] には、フィルターの応答に影響を与えるアクティブな要素の数を定義する整数値を入力します。 フィルターの 順序 は、フィルターウィンドウの長さを表します。

    FIR フィルターの場合、最小の順序は4です。

  3. [ ウィンドウ] で、フィルターが適用されるデータの形状を選択します。 Machine Learning では、有限インパルス応答フィルターで使用する次の種類のウィンドウ関数をサポートしています。

    ハミング: 一般化された ハミングウィンドウ は、イメージ処理とコンピュータービジョンで一般的に使用される加重平均の種類を提供します。

    Blackman: ブラックマンウィンドウ は、滑らかにテーパ曲線関数をシグナルに適用します。 ブラックマン ウィンドウは、阻止帯域減衰量が他のウィンドウの種類より大きくなります。

    四角形: 四角形のウィンドウ は、指定された間隔内に一貫性のある値を適用し、他の場所には値を適用しません。 最も単純な方形ウィンドウでは、データ シーケンスの n 値をゼロに置き換えます。これにより、信号は突然オンおよびオフになるように見えます。

    方形ウィンドウは、箱型ウィンドウまたはディリクレ ウィンドウとも呼ばれます。

    三角形: 三角形のウィンドウは、ステップごとにフィルター係数を適用します。 現在の値が三角の頂点となり、前または後の値が減少します。

    なし: 一部のアプリケーションでは、ウィンドウ関数を使用しないことをお勧めします。 たとえば、分析している信号が既にウィンドウやバーストを表している場合、ウィンドウ関数を適用すると信号雑音比率を悪化させる可能性があります。

  4. [ フィルターの種類] で、フィルターを適用する方法を定義するオプションを選択します。 フィルターの動作 (ターゲット値を除外する、値を変更する、値を拒否する、または値をパススルーする) を指定できます。

    ローパス: "Low pass" は、フィルターが下位の値を通過し、より大きい値を削除することを意味します。 たとえば、信号から高周波数のノイズとデータピークを除去する場合に使用できます。

    この種類のフィルターは、データに対し平準化効果があります。

    ハイパス: "High pass" は、フィルターが上位の値を通過し、下限の値を削除することを意味します。 これを使用すると、シグナルからバイアスやオフセットなどの低頻度のデータを削除できます。

    この種類のフィルターでは、信号内の急激な変化やピークが保持されます。

    バンドパス: "バンドパス" は、指定された値のバンドに問題を渡し、他のものを削除することを意味します。 このフィルターを使用して、ハイパスフィルターとローパスフィルターの交差部分に周波数特性を持つ信号からのデータを保持することができます。

    バンドパス フィルターは、ハイパス フィルターとローパス フィルターを組み合わせて作成します。 ハイパス フィルター カットオフ周波数は低域カットオフを表し、ローパス フィルター周波数は高域カットオフを表します。

    この種類のフィルターは、バイアスを除去して、信号を平準化することに長けています。

    バンド停止: "バンドストップ" は、指定された sigals をブロックすることを意味します。 つまり、低パスとハイパスフィルターによって拒否される頻度特性を持つ信号からデータを削除します。

    この種類のフィルターは、信号バイアスおよび急変を保持することに向いています。

  5. 選択したフィルターの種類に応じて、1つまたは複数のカットオフ値を設定する必要があります。

    値の上限または下限のしきい値を定義するには、 高カットオフ オプションと 低カットオフ オプションを使用します。 これらのオプションのいずれかまたは両方が、拒否または渡される値を指定するために必要です。 バンド停止またはバンドパスフィルターを使用するには、上限値と下限値の両方を設定する必要があります。 ローパスフィルターなど、その他のフィルターの種類では、下限値のみを設定する必要があります。

  6. スケーリングを係数に適用する場合は、[ スケール ] オプションを選択します。それ以外の場合は空白のままにします。

  7. フィルターを適用してデータセットを接続するフィルターを Connect します。

    列セレクターを使用して、フィルターを適用する列を指定します。 既定では、 フィルターの適用 モジュールは、選択されたすべての数値列に対してフィルターを使用します。

  8. 実験を実行します。

    データセットを 適用フィルター モジュールに接続して実験を実行するまで、計算は実行されません。 その時点で、指定した変換が選択された数値列に適用されます。

注意

FIR フィルターモジュールには、インジケーター列を作成するオプションが用意されていません。 列の値は常に変換されます。

機械学習でフィルターを使用する方法の例については、 Azure AI Galleryの次の実験を参照してください。

  • フィルター: この実験では、エンジニアリングした波形データセットを使用して、すべてのフィルターの種類を示します。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

実装の詳細

FIR フィルターには、次の特性があります。

  • FIR フィルターは、以前のフィルターの出力を使用するため、フィードバックがありません。
  • インパルス応答は常に 0 を返すので、FIR フィルターはより安定しています。
  • FIR フィルターは、無限インパルス応答 (IIR) フィルターと同じ選択を実現するために、高い次数が必要です。
  • 他のフィルターのように、FIR フィルターは信号を構成する周波数を保持または拒否する特定のカットオフ周波数で設計できます。

フィルターウィンドウでの係数の計算

ウィンドウの種類により、選択 (周波数が完全に受け入れられるか拒否されるかの遷移帯域幅) と抑制 (拒否される周波数の減衰合計) の間のトレードオフが決まります。 ウィンドウ外の周波数の応答に 0 を適用するために、ウィンドウ関数が理想的なフィルターの応答に適用されます。 係数は、ウィンドウ内の周波数の応答をサンプリングして選択されます。

FIR フィルター モジュールによって返される係数の数は、フィルターの順序に 1 を加えた値と等しくなります。 係数の値は、フィルター パラメーターとウィンドウ メソッドによって決まり、対称性を持ち、線形位相応答を保証します。

係数のスケーリング

FIR フィルターモジュールは、作成されたフィルターのフィルター係数またはタップの重みを返します。

係数は、順序などの入力パラメーターに基づくフィルターによって決まります。 カスタム係数を指定する場合は、ユーザー定義 フィルター モジュールを使用 します。

Scale をTrue に設定すると、フィルター係数が正規化され、パスバンドの中心周波数でのフィルターの大きさの応答が 0 になります。 Machine Learning Studio (クラシック) での正規化の実装は、MATLAB の fir1 関数と同じです。

通常、ウィンドウの設計メソッドでは、最適な無限インパルス応答 (IIR) フィルターを設計します。 ウィンドウ関数が時間領域の波形に適用され、無限インパルスがウィンドウ関数で乗算されます。 これにより、IIR フィルターの周波数応答は、ウィンドウ関数の周波数応答にたたみ込まれます。 ただし、FIR フィルターの場合、フィルターを適用すると、入力係数とフィルター係数 (またはタップの重み付け) が重み付けされます。

選択性とストップ バンドの減衰

次の表では、さまざまなウィンドウ メソッドを使用し、長さ n の FIR フィルターの阻止帯域減衰量の選択を比較しています。

ウィンドウの種類 遷移領域 最小の阻止帯域減衰量
方形 0.041n 21 dB
Triangle 0.11n 26 dB
ハン 0.12n 44 dB
ハミング 0.23n 53 dB
ブラックマン 0.2n 75 dB

モジュールのパラメーター

名前 Range Type Default 説明
順番 >=4 Integer 5 フィルターの順序を指定します
ウィンドウ Any ウィンドウの種類 適用するウィンドウの種類を指定します。
フィルターの種類 Any FilterType ローパス 作成するフィルターの種類を選択します。
低カットオフ [double.Epsilon;.9999999] Float 0.3 低域カットオフ周波数を設定します。
高カットオフ [double.Epsilon;.9999999] Float 0.7 高域カットオフ周波数を設定します。
スケール Any Boolean True True の場合、フィルター係数は正規化されます。

出力

名前 説明
Assert IFilter インターフェイス フィルターの実装

例外

例外 説明
NotInRangeValue パラメーターが範囲内にない場合、例外が発生します。

Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください

API の例外の一覧については、「エラー コードMachine Learning REST API参照してください

こちらもご覧ください

Assert
フィルターの適用
モジュールの一覧 (アルファベット順)