このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
CWT の新規ウェーブレット
この例は、あるパターンから、新規ウェーブレットを生成する方法を示しています。
CWT の新規ウェーブレットの設計の基本原理は、制約下で最小二乗最適化を使用し、指定されたパターンを近似して、連続ウェーブレット変換を使用したパターン検出に最適な、許容ウェーブレットを生成することです[1]。
元のパターンである疑似の正弦を読み込みます。
load ptpssin1
who
Your variables are: IntVAL X Y caption
変数 X
と Y
にパターンが含まれています。区間 [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
区間 [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')
psi
がウェーブレットの定義を満たすことをチェックするため、その積分値がゼロになること、および ノルムが 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.