Main Content

ウェーブレットを使用した密度推定

この節では、Wavelet Toolbox™ の専用のツールの 1 つを使用した 1 次元ウェーブレット密度推定の機能について説明します。

このツールボックスは、ウェーブレット アナライザー アプリにサンプルの密度推定を提供することで、ヒストグラム (MATLAB® コアから利用可能) や、カーネルベースの推定などのよく知られたツールを補完します。

この節の例のため、次のコマンドを使用して、拡張モードを対称性を利用したパディング方式に切り替えます。

dwtmode('sym')

ウェーブレット アナライザー アプリを使用した 1 次元推定

  1. 1 次元密度推定ツールを起動します。

    MATLAB プロンプトから、「waveletAnalyzer」と入力します。

    ウェーブレット アナライザーが表示されます。

    [1 次元密度推定] メニュー項目をクリックします。1 次元密度推定のための離散ウェーブレット解析ツールが表示されます。

  2. データを読み込みます。

    MATLAB コマンド ラインで以下を入力します。

    load ex1cusp1
    "1 次元密度推定" ツールで、[ファイル][ワークスペースからインポート] を選択します。

    [ワークスペースからインポート] ダイアログ ボックスが表示されたら、ex1cusp1 を選択します。[OK] をクリックして、ノイズを含むカスプ データをインポートします。

    サンプル (64 個のビンをもつヒストグラム) と、ビン化後の処理済みデータが表示されます。この例では、ビン数は既定の値 (250) をそのまま受け入れます。適切に正規化され、ビン化されたデータが、ウェーブレット分解によって処理されます。

  3. ビン化されたデータに対し、ウェーブレット分解を実行します。

    [ウェーブレット] メニューから sym6 ウェーブレットを選択し、[レベル] メニューから 4 を選択し、[分解] ボタンをクリックします。演算のため一時停止した後、ビン化されたデータの分解の Detail 係数がツールに表示されます。

  4. 密度推定を実行します。

    既定の設定 (ソフトのグローバルしきい値処理) をそのまま受け入れます。ウィンドウの右側に配置されたスライダーが、レベル依存のしきい値をコントロールします。このしきい値は、ウィンドウの左側にあるグラフでは青い水平な破線で示されます。

    [推定] ボタンをクリックして続行します。

    この推定プロセスでは、結果として非常に不規則な密度が得られていることがわかります。密度推定 (紫色で表示) は、その下に配置されている信号 (係数しきい値処理後の Approximation a4 および再構成された各 Detail) の正規化された和です。

  5. しきい値処理を実行します。

    ウィンドウの右側のメニューから適切なオプションを選択するか、左マウス ボタンで青色の破線をドラッグして、事前定義済みのさまざまなしきい値処理戦略を試すことができます。別の推定法を試してみましょう。

    [しきい値処理の選択] メニューから、[レベルごとのしきい値 2] の項目を選択します。次に、[推定] ボタンをクリックします。

    推定密度の結果が、より満足できるものになります。密度の平滑な箇所と、0.7 におけるカスプが正しく識別されています。

ウェーブレット アナライザー アプリへの情報のインポートとエクスポート

推定された密度をディスクに保存できます。ツールボックスは選択された名前の MAT ファイルを現在のフォルダーに作成します。

推定された密度を保存するには、[ファイル]、[密度を保存] のメニュー オプションを使用します。密度を保存するフォルダーとファイル名を指定するためのダイアログ ボックスが表示されます。名前 dex1cusp を入力します。密度データをファイル dex1cusp.mat に保存した後、ワークスペースに変数を読み込みます。

load dex1cusp 
whos
Nameサイズバイトクラス
ex1cusp11x10008000double array
thrParams1x4544cell array
wname1x48char array
xdata1x2502000double array
ydata1x2502000double array

元のノイズを含むカスプ データ ex1cusp1 には 1,000 個のサンプルが含まれています。変数 thrParamswnamexdata、および ydatadex1cusp.mat に格納されています。推定された密度は xdataydata によって与えられます。これらのベクトルの長さは、ステップ 4 で選択したビンの数と同じです。また、推定プロセスのパラメーターは、wname に含まれるウェーブレット名によって与えられます。

wname

wname = 
    sym6

および長さ 4 (分解のレベル) の cell 配列である thrParams に含まれるレベル依存のしきい値で与えられます。1 ~ 4 の i について、thrParams{i} には、しきい値処理の区間の下限および上限と、しきい値が格納されています (区間に依存したしきい値が許容されているため)。詳細は、1-D Adaptive Thresholding of Wavelet Coefficients を参照してください。たとえば、レベル 1 では次のようになります。

thrParams{1}
ans = 
    0.0560    0.9870    2.1179

メモ:

メニュー オプション [ファイル]、[密度推定用のデータの読み込み] を使用してファイルからデータを読み込むとき、ファイルで最初に検出された 1 次元変数が信号と見なされます。変数は、アルファベット順に検査されます。

この節の最後に、次を使用して、拡張モードをゼロ パディングに戻します。

dwtmode('zpd')