Keyword: 1次元, 離散, ウェーブレット変換
概要
本サンプルは1次元離散ウェーブレット変換を行うサンプルプログラムです。 本サンプルは以下に示される8個の要素をもつ配列についてDaubechies ウェーブレットを用いて1次元離散ウェーブレット変換を行い、近似係数、詳細係数とウェーブレットの再構成を出力します。
※本サンプルはnAG Toolbox for MATLAB®が提供する関数 c09ca() のExampleコードです。実行にはMATLAB®本体(他社製品)とnAG Toolbox for MATLAB®が必要です。
本サンプル及び関数の詳細情報は c09ca のマニュアルページをご参照ください。
入力データ
n = int32(8);
wavnam = 'DB4';
mode = 'zero';
wtrans = 'Single Level';
x = [1; 3; 5; 7; 6; 4; 5; 2];
fprintf('\n Input Data:\n');
fprintf('%8.4f ', x);
fprintf('\n');
% Query wavelet filter dimensions
[nwl, nf, nwc, icomm, ifail] = c09aa(wavnam, wtrans, mode, n);
if ifail == int32(0)
% Compute the transform
[ca, cd, icomm, ifail] = c09ca(x, nwc, icomm);
if ifail == int32(0)
fprintf(' Approximation coefficients CA :\n');
fprintf('%8.4f ', ca);
fprintf('\n');
fprintf(' Detail coefficients CD :\n');
fprintf('%8.4f ', cd);
fprintf('\n');
% Reconstruct original data
[y, ifail] = c09cb(ca, cd, n, icomm);
if ifail == int32(0)
fprintf(' Reconstruction Y : \n');
fprintf('%8.4f ', y);
fprintf('\n');
end
end
end
- n には入力データである配列の要素の数を指定しています。
- wavnam にどのウェーブレット法を使用するかを示すパラメータを指定しています。"DB4"は4つの消失モーメントがある Daubechies ウェーブレットを使用することを意味します。
- mode にデータの端部拡張(End Extension)の手法を示すパラメータを指定しています。"zero"はゼロパディング(ゼロ詰め)することを意味します。
- wtrans には離散ウェーブレット変換の種類を指定しています。"Single level" は離散ウェーブレット変換による単一レベルの分解や再構成を意味します。
- x に入力データである配列の要素を指定しています。
- 11行目に離散ウェーブレットフィルターの詳細を返す関数c09aaを呼び出しています。
- 15行目に本関数c09caを呼び出す構文を指定しています。
- 18〜23行目は離散ウェーブレット変換の結果を出力しています。
- 26行目にウェーブレット再構成を行う関数c09cbを呼び出しています。
- 28〜32行目はウェーブレット再構成の結果を出力しています。
出力結果
Input Data: 1.0000 3.0000 5.0000 7.0000 6.0000 4.0000 5.0000 2.0000 Approximation coefficients CA : 0.0011 -0.0043 -0.0174 4.4778 8.9557 7.3401 2.5816 Detail coefficients CD : 0.0237 0.0410 -0.5966 1.7763 -0.7517 0.3332 -0.1188 Reconstruction Y : 1.0000 3.0000 5.0000 7.0000 6.0000 4.0000 5.0000 2.0000
- Input Data は入力された配列の要素の数を示しています。
- Approximation coefficients は近似係数を示しています。
- Detail coefficients は詳細係数を示しています。
- Reconstruction はウェーブレット再構成を示しています。
