Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

信号の前処理

信号アナライザー アプリを使用すると、複数の信号前処理タスクを実行できます。さまざまな処理オプションが [アナライザー] タブに表示されます。

Signal Analyzer preprocessing options

前処理操作、元に戻す操作、および関数の生成は、信号テーブルで現在選択されているすべての信号に適用されます。信号を選択するには、信号テーブルで [名前][INFO][時間]、または [開始時間] 列をクリックします。

メモ

  • 前処理は、ラベル付き信号セットではサポートされません。ラベル付き信号セットに属する信号を前処理する場合は、最初に信号をセットから抽出しなければなりません。詳細については、信号の関心領域の抽出を参照してください。

  • 前処理操作は、処理対象の信号に上書きします。元の信号を維持する場合は、その信号を複製して複製した信号に対して操作します。

何回でも任意の順番で前処理アクションを実行できます。信号テーブルの [INFO] 列には、何らかの前処理が信号に対して実行されているかどうかを示すアイコン が入ります。アイコンをクリックすると、実行されたアクションと順番が列挙されます。[アナライザー] タブまたは前処理のアクションにより生成されるタブ上の [前処理を元に戻す] をクリックして前処理のステップを元に戻すことができます。ステップは直近のものから始めて、一度に 1 つずつ元に戻ります。

ヒント

選択した設定すべてを含む、実行した前処理ステップの概要をすべて参照するには、[アナライザー] タブの [関数の生成] をクリックします。

マルチチャネル信号の個々のチャネルを前処理できます。前処理のためにマルチチャネル信号とそのチャネルの 1 つを選択した場合、アプリは一度だけ個々のチャネルを前処理します。

信号の複製と名前の変更

信号アナライザーでは、信号を複製して名前を変更し、後の解析のために前処理またはエクスポートすることができます。

信号を複製するには、[アナライザー] タブまたは前処理アクションで生成されるタブ上の [複製] ボタンを使用します。あるいは、信号テーブルで信号を右クリックし、[複製] を選択します。複製は、元の信号と同じ名前で _copy が付加されています。

複製のために信号とそのチャネルの 1 つを選択した場合、アプリは信号の複製と選択したチャネルの独立した複製を作成します。

信号名を変更するには、信号テーブルの信号名をダブルクリックして名前を変更します。あるいは、信号テーブルの信号を右クリックし、[名前の変更] を選択します。

メモ

マルチチャネル信号の個々のチャネルの名前を変更することはできません。

信号のフィルター処理

1 つ以上の選択した信号をフィルター処理するには、[アナライザー] タブで、[前処理] ギャラリーの [ローパス][ハイパス][バンドパス]、または [バンドストップ] アイコンをクリックします。アプリでは、関数 lowpasshighpassbandpass、および bandstop を使用して、フィルター処理を実行します。阻止帯域の減衰量、通過帯域周波数、および遷移領域の幅を制御できます。詳細は、関数リファレンス ページを参照してください。フィルター処理では、不等間隔サンプル信号はサポートしません。

信号の平滑化

1 つ以上の選択した信号を平滑化するには、[アナライザー] タブで、[前処理] ギャラリーの [平滑化] アイコンをクリックします。アプリでは、MATLAB® 関数 smoothdata を使用して、平滑化を実行します。利用可能な平滑化メソッドは次のとおりです。

  • 移動平均値

  • 移動中央値

  • ガウス

  • 線形回帰

  • 2 次回帰

  • ロバスト線形回帰

  • ロバスト 2 次回帰

  • Savitzky-Golay フィルター

信号のリサンプリング

1 つ以上の選択した信号をリサンプリングするには、[アナライザー] タブで、[前処理] ギャラリーを展開し、[リサンプリング] アイコンをクリックします。信号アナライザーは、Signal Processing Toolbox™ 関数 resample を使用して、リサンプリングを実行します。利用可能なオプションは次のとおりです。

  • 信号が不等間隔サンプルの場合は、アプリを使用して等間隔グリッドに内挿できます。内挿法と信号をサンプリングするサンプルレートを指定できます。以下の内挿法を使用できます。

    • 線形内挿

    • 形状維持区分的 3 次内挿

    • 節点なしの端点条件を使用した 3 次スプライン内挿

    詳細は、interp1 のリファレンス ページを参照してください。

  • 信号が等間隔サンプルの場合は、アプリを使用してそのサンプルレートを変更できます。目的のサンプルレートまたは信号をアップサンプリングまたはダウンサンプリングする要因のいずれかを指定できます。この場合、[リサンプリング] タブの内挿パネルは、等間隔サンプル信号では内挿操作は意味をなさないため、無効になります。

リサンプリング操作には時間情報が必要です。サンプルの信号をリサンプリングをしようとすると、アプリは警告を表示します。

信号のトレンド除去

1 つ以上の選択した信号をトレンド除去するには、[アナライザー] タブで、[前処理] ギャラリーを展開し、[トレンド除去] アイコンをクリックします。信号アナライザーは、MATLAB 関数 detrend を使用してトレンド除去を実行します。このアプリは、信号から次のトレンドを削除できます。

  • 定数トレンド。

  • 線形トレンド。

  • 区分線形トレンド。区分線形トレンドを削除するには、ブレークポイントをコンマ区切りリストとして指定します。

信号のノイズ除去

1 つ以上の選択した信号のノイズを除去するには、[アナライザー] タブで、[前処理] ギャラリーを展開し、[ノイズ除去] アイコンをクリックします。信号アナライザーは、関数 wdenoise (Wavelet Toolbox) を以下のパラメーターとともに使用して、信号のノイズ除去を実行します。

  • ウェーブレット ファミリ

  • ノイズ除去方法

  • しきい値処理ルール

このアプリで信号のノイズ除去を行うには、Wavelet Toolbox™ のライセンスを所有していなければなりません。

信号包絡線の計算

1 つ以上の選択した信号の包絡線を計算するには、[アナライザー] タブで、[前処理] ギャラリーを展開し、[包絡線] アイコンをクリックします。信号アナライザーは、Signal Processing Toolbox 関数 envelope を使用して、包絡線を推定します。各信号の上部包絡線または下部包絡線を計算できます。利用可能な包絡線推定アルゴリズムは次のとおりです。

  • ヒルベルト — アプリは、hilbert に実装されるように離散フーリエ変換を使用して検出された解析信号の振幅として信号包絡線を計算します。

  • FIR — アプリは、調整可能なサイズのヒルベルト FIR フィルターで信号をフィルター処理したり、解析信号の虚数部としての結果を使用して、信号包絡線を計算します。

  • RMS — アプリは、調整可能な長さの移動ウィンドウを使用して計算した RMS 値を結合して信号包絡線を計算します。

  • ピーク — アプリは、調整可能なサンプル数単位で分割された局所的最大値にスプライン内挿を使用して、信号包絡線を計算します。

メモ

包絡線計算は複素信号をサポートしていません。

カスタム前処理関数の追加

カスタム前処理関数を追加するには、[アナライザー] タブで、[前処理] ギャラリーの隣にある矢印をクリックして、[カスタム関数の追加] を選択します。アプリによって関数名と概要を入力するように求められます。

  • 前処理関数を書き込み済みでその関数が現在のフォルダーまたは MATLAB パスにある場合、アプリはその関数をギャラリーに組み込みます。関数名の検索にタブ補完を使用することができます。

  • 関数をまだ書き込んでいない場合、アプリはエディターで白紙のテンプレートを開きます。

カスタム前処理関数には必須およびオプションの引数があります。

  • 最初の入力引数 x は、入力信号です。この引数はベクトルでなければならず、単一チャネルとして取り扱われます。

  • 2 番目の入力引数 tIn は、時間値のベクトルです。ベクトルは信号と同じ長さでなければなりません。入力信号に時間情報がない場合、関数はこの引数を空の配列として読み取ります。

  • 追加の入力引数を指定するには、varargin を使用します。追加の入力引数がない場合は、varargin を省略できます。追加の引数は、[前処理] タブに順序付きのコンマ区切りリストとして入力します。

  • 最初の出力引数 y は、前処理済みの信号です。

  • 2 番目の出力引数 tOut は、出力時間値のベクトルです。入力信号に時間情報がない場合、tOut は空の配列として返されます。

  • アルゴリズムを実装するために、MATLAB 関数または Signal Processing Toolbox 関数を使用できます。

詳細については、独自の関数を使用した飽和信号のクリップ除去を参照してください。

例: この関数で信号の DC 値を削除するためにその平均値を減算します。

function [y,tOut] = removeDC(x,tIn)
% Remove the DC value of a signal by subtracting its mean
   y = x - mean(x);
   tOut = tIn;
end

例: この関数は信号の開始時間を指定した値に変更します。

function [y,tOut] = timealign(x,tIn,startTime)
% Change the starting time of a signal
   y = x;
   t = tIn;
   if ~isempty(t)
       t = t - t(1) + startTime;
   end
   tOut = t;
end

必要に応じて、ギャラリーの [カスタム関数の管理] オプションを使用して、関数の編集、説明の編集、またはそれらの削除をすることができます。

Preprocessing gallery details view

メモ

カスタム前処理関数は、入力信号の実数/複素数を変更してはなりません。

前のステップ

解析する信号の選択

次のステップ

信号の調査

参考

関連するトピック