Main Content

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

信号多重解像度アナライザー

時間を揃えた成分に信号を分解

説明

信号多重解像度アナライザーアプリは、実数値の 1 次元信号の多重レベル ウェーブレットと経験的モード分解を可視化して結果を比較するための対話型ツールです。このアプリでは、以下を行うことができます。

  • 自分の MATLAB®ワークスペース内のすべての信号にアクセスする。

  • modwtメソッドとmodwtmraメソッド(既定)またはemdメソッドを使用して、既定パラメーターを調整し、複数の分解を生成する。

  • 信号の再構成に含める分解レベルを選択する。

  • 結果を可視化して比較する。

  • 分解レベルの周波数範囲を取得する (詳細についてはpowerbwを参照)。

  • 複数のレベルにおける信号の相対エネルギーを特定する。

  • 再構成した信号と分解をワークスペースにエクスポートする。

  • MATLAB スクリプトを生成することにより、ワークスペースで分解を再作成する。

信号多重解像度アナライザー アプリを開く

  • MATLAB ツールストリップ:[アプリ]タブの[信号処理と通信][信号多重解像度アナライザー]をクリックします。

  • MATLAB コマンド プロンプト:signalMultiresolutionAnalyzerと入力します。

すべて展開する

阪神淡路大震災のデータを読み込みます。このデータは、オーストラリアのホバートにあるタスマニア大学の地震計で 1995 年 1 月 16 日 20:56:51 (GMT) から 51 分間にわたって 1 秒間隔で記録された測定値 (垂直加速度、 nm / sec 2 ) です。

loadkobe

信号多重解像度アナライザーを開き、[インポート]をクリックします。アプリで処理できるすべてのワークスペース変数をリストしたウィンドウが表示されます。

ダイアログ ボックスから阪神淡路大震災のデータを選択して、[インポート]をクリックします。信号の 4 レベルの MODWTMRA 分解が表示されます。[分解された信号]ペインでは、分解された信号にkobe1という名前が付けられます。接尾辞[MODWT]は、分解がウェーブレットに基づくことを示します。既定では、プロットはサンプル インデックスに対して行われ、周波数の単位はサンプルあたりのサイクル数です。[サンプルレート]ラジオ ボタンを選択します。データのサンプルレートは 1 Hz なので、既定値を変更する必要はありません。プロットと周波数が、このサンプルレートを使用するよう更新されます。

中央の[分解]ペインのプロットは、元の信号部分空間の各スケールにおける信号のウェーブレット分解の投影です。元の信号kobeと再構成kobe1は、[再構成]ペインにプロットされます。[レベルの選択]ペインには、各スケールにおける信号の相対エネルギーと周波数帯域が表示されます。

[表示]列のチェック ボックスは、そのレベルを[分解]ペインに表示するかどうかを制御します。[含める]列のチェック ボックスは、そのレベルのウェーブレット分解を再構成に含めるかどうかを制御します。[分解]ペインのプロットをクリックすることによっても、信号の再構成でそのレベルを含めるか除外するかを制御できます。新しいウェーブレット分解を生成するには、いずれかのウェーブレット パラメーターをツールストリップで変更して[分解]をクリックします。

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

  • 数値- ウェーブレット フィルターの番号

  • レベル- ウェーブレット分解のレベル

ツールストリップの設定を変更すると、[分解]ボタンが有効になります。

ノイズがある Doppler 信号を読み込みます。この信号は、Donoho および Johnstone の Doppler テスト信号 [1] にノイズを加えたものです。

loadnoisdopp

信号多重解像度アナライザーを開き、信号をアプリにインポートします。既定では、信号の 4 レベルの MODWTMRA 分解が作成されます。[分解された信号]ペインでは、ウェーブレット分解にnoisdopp1という名前が付けられます。[再構成]ペインに、元の信号と再構成された信号が異なる 2 色でプロットされます。

EMD 分解を追加するため、[追加]▼ をクリックして[EMD]を選択します。

少し待つと、EMD 分解noisdopp2がアプリに表示されます。[分解された信号]で EMD 分解を選択したので、EMD に関連するオプションを表示するようにツールストリップが変化し、残差が[再構成]ペインで最も太いプロットになります。

2 つの再構成の違いを調べやすくするため、プロットの凡例のnoisdoppをクリックします。テキストが薄くなり、元の信号のプロットが非表示になります。凡例を使用すると、[再構成]ペインの任意のプロットを非表示にすることができます。

ツールストリップのパラメーターを変更すると、異なる EMD 分解を生成できます。パラメーターの上にカーソルを置くと、ツールヒントが表示されます。

  • 内挿— 包絡線構築のための内挿法:spline(既定) |pchip

  • ふるい分けの相対許容誤差— コーシー型収束基準:0.2(既定) | 正のスカラー

  • ふるい分けの最大反復回数— ふるい分け反復の最大数:100(既定) | 1 ~ 10,000 の正の整数

  • IMF の最大数— 抽出する IMF の最大数: 1 ~ 10,000 の正の整数

  • 極値の最大数— 残差信号の極値の最大数:1(既定) | 1 ~ 10,000 の正の整数

  • 最大エネルギー比— 信号と残差のエネルギー比:20(既定) | 正のスカラー

パラメーターおよび EMD アルゴリズムの詳細については、emdを参照してください。

この例では、アプリの既定設定を変更して修正用に分解を複製する方法を示してから、ワークスペースで分解を再作成するスクリプトを生成する方法を示します。

阪神淡路大震災のデータをワークスペースに読み込みます。このデータは、オーストラリアのホバートにあるタスマニア大学の地震計で 1995 年 1 月 16 日 20:56:51 (GMT) から 51 分間にわたって 1 秒間隔で記録された測定値 (垂直加速度、 nm / sec 2 ) です。

loadkobe

信号多重解像度アナライザーを開き、地震のデータをアプリにインポートします。既定では、次数 4 の Symlet であるsym4を使用して、kobe1という名前で信号の 4 レベルの MODWTMRA 分解が作成されます。[サンプルレート]ラジオ ボタンをクリックして、プロットが時間に対して行われるようにします。

次数 4 の Coiflet を使用して、新しい 6 レベルの分解を作成します。ツールストリップの[複製]をクリックします。kobe1は現在[分解された信号]で選択されている項目なので、1 番目の分解の複製が作成されます。複製の名前はkobe1Copyになります。[再構成]のプロットが更新され、新しい分解が追加されます。複製は、色以外は 1 番目の分解と同じです。[分解された信号]の名前を右クリックすることにより、複製の名前を変更できます。

ツールストリップの設定を以下の値に変更してから、[分解]をクリックします。

  • ウェーブレット:coif

  • 数値: 4

  • レベル: 6

[レベルの選択]で、再構成に含まれる分解の成分 (Approximation とレベル 5 およびレベル 6 の Detail) に注意してください。

レベル 4 には、全エネルギーの約 60% があります。レベル 5 および 6 を再構成から削除し、代わりにレベル 4 を含めます。[分解]ペインに Approximation とレベル 4 の Detail のみを表示します。分解と再構成の位置をほぼ合わせるには、[分解]ペインを[再構成]ペインの下にドラッグします。

エクスポートの選択肢は 3 つあります。再構成または分解全体をワークスペースにエクスポートするか、MATLAB™ スクリプトを作成できます。スクリプトを生成するには、[エクスポート][MATLAB スクリプトの生成]をクリックします。

エディターに無題のスクリプトが開き、次の実行可能なコードが表示されます。

% Logical array for selecting reconstruction elementslevelForReconstruction = [false, false, false, true, false, false, true];% Perform the decomposition using modwtwt = modwt(kobe,'coif4', 6);% Construct MRA matrix using modwtmramra = modwtmra(wt,'coif4');% Sum along selected multiresolution signalskobe1Copy = sum(mra(levelForReconstruction,:),1);

levelForReconstructionの true と false の値は、[レベルの選択]でのIncludeボックスの選択に対応します。スクリプトをそのまま保存するか、同じ分解設定を他の信号に適用するように修正できます。スクリプトを実行して、元の信号と再構成をプロットします。このプロットは、色が異なる可能性がある以外、アプリに表示されているkobe1Copyの再構成と一致します。

t = 0:numel(kobe)-1; plot(t,kobe) gridonholdonplot(t,kobe1Copy,'LineWidth'(2)包含'Seconds') title('Reconstruction') legend('Original','Reconstruction','Location','northwest')轴tight

Figure contains an axes. The axes with title Reconstruction contains 2 objects of type line. These objects represent Original, Reconstruction.

パラメーター

多重解像度解析 (既定) を生成するために使用する直交ウェーブレット ファミリ。以下を指定します。

  • sym— Symlet

  • coif— Coiflet

  • db— Daubechies ウェーブレット

  • fk— Fejér-Korovkin ウェーブレット

Waveletパラメーターは、多重解像度解析の生成のみに適用されます。

ウェーブレットの詳細については、関数waveinfoを使用してください。たとえば、Daubechies ウェーブレットの詳細を調べるには、「waveinfo('db')」と入力します。

経験的モード分解で包絡線構築に使用する内挿法。次のいずれかを指定します。

  • spline— 3 次スプライン内挿

  • pchip— 区分的 3 次エルミート内挿多項式法

Interpolationパラメーターは、経験的モード分解の生成のみに適用されます。経験的モード分解を作成するときに、アプリで他のオプションを変更できます。詳細については、emdを参照してください。

プログラムによる使用

すべて展開する

signalMultiresolutionAnalyzerは、信号多重解像度アナライザーアプリを開きます。アプリが初期化されたら、[インポート]をクリックして解析用の信号をインポートします。

signalMultiresolutionAnalyzer(sig)は、信号多重解像度アナライザーアプリを開き、sym4ウェーブレットと既定設定によりmodwtmramodwtを使用して、sigの多重解像度解析をインポート、分解およびプロットします。sigは、実数値のベクトルです。

既定では、このアプリは分解レベルをサンプル インデックスの関数としてプロットします。時間に関してプロットするには、このアプリを使用してサンプルレートまたはサンプル周期を設定できます。

ヒント

複数の信号を同時に分解するには、信号多重解像度アナライザーアプリのインスタンスを複数実行できます。

アルゴリズム

信号多重解像度アナライザーは、多重解像度解析の生成にはmodwtmodwtmraを,経験的モード分解の生成にはemdを使用します。

参照

[1] Donoho, David L., and Iain M. Johnstone. “Ideal Spatial Adaptation by Wavelet Shrinkage.” Biometrika 81, no. 3 (September 1, 1994): 425–55. https://doi.org/10.1093/biomet/81.3.425.

R2018b で導入