Main Content

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

CWT の新規ウェーブレット

この例は、あるパターンから、新規ウェーブレットを生成する方法を示しています。

CWT の新規ウェーブレットの設計の基本原理は、制約下で最小二乗最適化を使用し、指定されたパターンを近似して、連続ウェーブレット変換を使用したパターン検出に最適な、許容ウェーブレットを生成することです[1]

元のパターンである疑似の正弦を読み込みます。

load ptpssin1
who
Your variables are:

IntVAL   X        Y        caption  

変数 XY にパターンが含まれています。区間 [0, 1] にわたり、パターンを積分します。パターンをプロットします。

dX = max(diff(X));
patternInt = dX*sum(Y);
disp(['Integral of pattern = ',num2str(patternInt)]);
Integral of pattern = 0.15915
plot(X,Y)
title('Original Pattern')
grid on

Figure contains an axes object. The axes object with title Original Pattern contains an object of type line.

区間 [0, 1] のパターンは 0.15915 に積分されます。そのため、これはウェーブレットではありませんが、ウェーブレットと同じように振動するため、適切な候補です。

指定されたパターンに適応した新規ウェーブレットを合成するには、パターンの開始と終了で連続性の制約を持つ次数 6 の最小二乗多項式近似を使用します。

[psi,xval,nc] = pat2cwav(Y, 'polynomial',6, 'continuous');

新規ウェーブレットは xval および nc*psi によって与えられます。

figure
plot(X,Y,'-',xval,nc*psi,'--')
grid on
legend('Original Pattern','Adapted Wavelet','Location','NorthWest')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original Pattern, Adapted Wavelet.

psi がウェーブレットの定義を満たすことをチェックするため、その積分値がゼロになること、および L2 ノルムが 1 に等しいことを確認します。

dxval = max(diff(xval));
newWaveletIntegral = dxval*sum(psi);
disp(['Integral of new wavelet = ',num2str(newWaveletIntegral)])
Integral of new wavelet = 1.9626e-05
newWaveletSqN = dxval*sum(psi.^2);
disp(['New wavelet has L2-norm = ',num2str(newWaveletSqN)])
New wavelet has L2-norm = 1

参照

[1] Misiti, M., Y. Misiti, G. Oppenheim, and J.-M. Poggi. Les ondelettes et leurs applications. France: Hermes Science/Lavoisier, 2003.

参考