Main Content

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

信号の前処理

フィルター処理、トリミング、クリッピングなどのさまざまな "関数""操作" を備えた信号アナライザー アプリでは、信号を前処理できます。メインの [アナライザー] タブでは、前処理モードの開始、先に行った前処理の取り消し、信号テーブル内で選択した信号に対する MATLAB® コードの生成を行うことができます。前処理モードを開始するには、信号テーブル内の 1 つ以上の信号を選択し、[前処理] をクリックします。

何回でも任意の順番で前処理操作を実行できます。信号テーブルの [情報] 列には、何らかの前処理が信号に対して実行されているかどうかを示すアイコン が表示されます。アイコンをクリックすると、実行されたアクションと順番が列挙されます。モード内または [アナライザー] タブの [前処理を元に戻す] をクリックして前処理のステップを元に戻すことができます。ステップは直近のものから、一度に 1 つずつ元に戻ります。選択した設定すべてを含む、実行した前処理ステップの概要をすべて参照するには、[アナライザー] タブの [関数の生成] をクリックします。

メモ

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

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

  • 前処理モードがアクティブの場合の信号アナライザーへの信号のインポートはサポートされていません。

Display

前処理モードを開始する前に選択されたすべての信号は、[前処理] をクリックするとモード内の信号テーブルに追加されます。表示内には最初の信号がプロットされます。追加の信号をプロットするには、信号テーブルで信号を選択します。[最大信号数] の値を変更すると、プロットする信号の最大数を指定できます。信号テーブル内の信号数に満たない最大信号数を指定しても、モード内の信号テーブルで選択されたすべての信号に前処理操作が適用されます。

信号のラインの色を変更するには、信号テーブルの [ライン] 列のカラー バーをクリックして色を選択します。標準の色を選択することも、RGB 値を使用してカスタム色を指定することもできます。[OK] をクリックします。

ヒント

信号の前処理を補助するため、パナーの有効化、ズーム操作の使用、表示へのスペクトル ビュー、スペクトログラム ビュー、またはスカログラム ビューの追加を行うことができます。

信号の削除、複製、および名前変更

信号アナライザーを使用すると、前処理モードで信号の削除、複製、および名前変更を行うことができます。

信号を削除するには、信号テーブルで信号を選択し、キーボードの Del キーを押します。または、信号テーブルで信号を右クリックし、[削除] を選択します。[削除] ポップアップ ウィンドウで削除を確認します。前処理モードで信号を削除し、[すべて確定] を選択して前処理ステップを保存すると、メインのアプリでも信号が削除されます。[キャンセル] を選択して前処理ステップを破棄すると、信号はメインのアプリに保存されます。

信号を複製するには、[前処理] タブの [複製] をクリックするか、信号テーブルで信号を右クリックして [複製] を選択します。複製には、元の信号と同じ名前に _Copy が追加されます。前処理モードで信号を複製し、[すべて確定] を選択して前処理ステップを保存すると、複製された信号がメインのアプリに表示されます。[キャンセル] を選択して前処理ステップを破棄した場合、複製された信号はメインのアプリに表示されません。

信号の名前を変更するには、信号テーブルで信号名をダブルクリックし、名前を変更します。あるいは、信号テーブルの信号を右クリックし、[名前の変更] を選択します。テキスト ボックスの外側をクリックするか、キーボードの Enter キーを押して変更を保存します。

メモ

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

前処理関数

信号のフィルター処理

1 つ以上の選択した信号をフィルター処理するには、次を行います。

  1. [関数] ギャラリーからフィルターを選択します。

  2. [関数パラメーター] パネルで、阻止帯域の減衰量、通過帯域周波数、急峻さ、および遷移領域の幅など、フィルター仕様を調整します。

  3. [適用] をクリックしてフィルターを適用するか、[既定の設定に戻す] をクリックして既定の設定を復元します。

  4. [情報] 列のアイコンをクリックして、前処理履歴を表示します。

  5. [すべて確定] をクリックして前処理結果を保存するか、[キャンセル] をクリックして変更内容を破棄します。

Bandpass filter results inside preprocessing mode.

アプリでは、以下の関数を使用して、フィルター処理を実行します。

メモ

フィルター処理では、不等間隔サンプル信号はサポートしません。

信号のノイズ除去、トレンド除去、平滑化

1 つ以上の選択した信号のノイズやトレンドを除去または信号を平滑化するには、[関数] ギャラリーを展開し、[削除] リストからオプションを選択します。

  • ノイズ除去 — 信号のノイズ除去を実行するため、アプリは以下のパラメーターで関数 wdenoise (Wavelet Toolbox) を使用します。

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

    • ノイズ除去方法

    • しきい値処理ルール

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

  • トレンド除去 — トレンド除去を実行するため、アプリでは MATLAB 関数 detrend を使用します。信号から次のトレンドを削除できます。

    • 定数トレンド

    • 線形トレンド

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

  • 平滑化 — 平滑化を実行するため、アプリでは MATLAB 関数 smoothdata を使用します。利用可能な平滑化メソッドは次のとおりです。

    • 移動平均値

    • 移動中央値

    • ガウス

    • 線形回帰

    • 2 次回帰

    • ロバスト線形回帰

    • ロバスト 2 次回帰

    • Savitzky-Golay フィルター

信号のリサンプリングまたは包絡線の推定

1 つ以上の選択した信号の包絡線をリサンプリングまたは計算するには、[関数] ギャラリーを展開し、[変換] リストからオプションを選択します。

  • 包絡包 — 包絡線を推定するため、アプリでは Signal Processing Toolbox™ 関数 envelope を使用します。各信号の上部包絡線または下部包絡線を計算できます。利用可能な包絡線推定アルゴリズムは次のとおりです。

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

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

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

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

    メモ

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

  • リサンプリング — リサンプリングを実行するため、アプリでは Signal Processing Toolbox 関数 resample を使用します。利用可能なオプションは次のとおりです。

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

      • 線形内挿

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

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

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

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

    メモ

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

カスタム関数

カスタム前処理関数を追加するには、[前処理] ギャラリーを展開して [カスタム関数の追加] を選択します。アプリによって関数名と概要を入力するように求められます。

  • 前処理関数を書き込み済みでその関数が現在のフォルダーまたは 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

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

メモ

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

前処理操作

1 つ以上の選択した信号に前処理操作を適用するには、次を行います。

  1. ツールストリップの [選択] セクションで、関心領域 (ROI) の描画か、垂直カーソルまたは水平カーソルの描画を選択します。

  2. プロットに ROI またはカーソルの範囲を描画します。範囲を手動で指定することもできます。

  3. ツールストリップから前処理操作を選択します。オプションには、描画済み ROI の場合は [抽出][トリミング]、描画済みの垂直カーソルの場合は [平衡化][分割]、描画済みの水平カーソルの場合は [クリップ] が含まれます。

  4. [情報] 列のアイコンをクリックして、前処理履歴を表示します。

  5. [すべて確定] をクリックして前処理結果を保存するか、[キャンセル] をクリックして変更内容を破棄します。

Trim results inside preprocessing mode.

ヒント

信号が時間情報をもつ場合は、[開始時間の保持] ボックスをオンにできます。このオプションは、変更された信号の開始時間を、前処理操作を実行するときのカーソル位置に設定します。

描画済み ROI の場合は、次を行うことができます。

  • 抽出 — ROI 範囲内の内容を使用して、新しい信号を作成します。

  • トリミング — ROI 範囲内のデータを保持します。トリミング操作は次の規則に従います。

    • カーソルがサンプル点上にある場合、トリミングされた信号にはそのサンプルが含まれます。

    • カーソルがサンプル点間にある場合、トリミングされた信号は左のカーソルより後の次のサンプル点から始まり、右のカーソルより前のサンプル点で終わります。

描画済みの垂直カーソルの場合は、次を行うことができます。

  • 平衡化 — 信号の最初から垂直方向のカーソルまでのデータ、または垂直方向のカーソルから信号の最後までのデータを削除します。平衡化操作は次の規則に従います。

    • カーソルがサンプル点上にある場合、平衡化された信号にはそのサンプルが含まれます。

    • カーソルが 2 つのサンプル点間にある場合、トリミングされた信号は左の平衡化操作のカーソルより後のサンプル点から始まり、右の平衡化操作のカーソルより前のサンプル点で終わります。

  • 分割 — 垂直方向のカーソル位置でデータを 2 つの信号に分割します。分割操作は次の規則に従います。

    • 信号がサンプル内にある場合、分割された信号はどちらも 0 から始まります。

    • 信号に時間情報があり、[開始時間の保持] ボックスがオンになっている場合、2 番目の分割信号はカーソルより後の次の時間点から始まり、最初の分割信号は元の信号の開始時間から始まります。時間が保持されていない場合、分割された信号はどちらも 0 から始まります。

    • カーソルが 2 つのサンプル点間にある場合は、どちらの分割信号にもカーソル付近の 2 つのサンプルが含まれます。カーソルがサンプル点上にある場合、サンプル点は最初の分割信号の最後のサンプルとなり、2 番目の分割信号はカーソルより後の次のサンプル点から始まります。

描画済みの水平カーソルの場合は、次を行うことができます。

  • クリップ — 水平方向のカーソルのしきい値より上または下のデータを削除します。

前のステップ

解析する信号の選択

次のステップ

信号の調査

参考

アプリ

関数

関連するトピック