多重解像度解析
↑ Stephane G. Mallat (1989). “A theory for multiresolution signal decomposition: the wavelet representation”. Pattern Analysis and Machine Intelligence, IEEE Transactions on 11 (7): 674-693. doi:10.1109/34.192463. http://www.cmap.polytechnique.fr/~mallat/papiers/MallatTheory89.pdf.
↑ DiscreteWaveletTransform—Wolfram言語ドキュメント
↑ Single-level discrete 1-D wavelet transform - MATLAB dwt - MathWorks 日本
↑ Wim Sweldens (April 1996). “The Lifting Scheme: A Custom-Design Construction of Biorthogonal Wavelets”. Applied and Computational Harmonic Analysis 3 (2): 186–200. doi:10.1006/acha.1996.0015.
1 2 Lifting Method for Constructing Wavelets - MATLAB & Simulink - MathWorks 日本
φ ( 2 x − l ) = 1 2 ∑ k ∈ Z ( g 2 k − l φ ( x − k ) + h 2 k − l ψ ( x − k ) ) , l ∈ Z {\displaystyle \phi (2x-l)={\frac {1}{2}}\sum _{k\in \mathbf {Z} }(g_{2k-l}\phi (x-k)+h_{2k-l}\psi (x-k)),\quad l\in \mathbf {Z} }
{ g k } , { h k } {\displaystyle \{g_{k}\},\{h_{k}\}} を分解数列と呼ぶ。例えば、直交ウェーブレットの場合、 g k = p ̄ − k , h k = q ̄ − k {\displaystyle g_{k}={\overline {p}}_{-k},\ h_{k}={\overline {q}}_{-k}} 。
分解数列が分かると、 f j ( x ) = g j − 1 ( x ) + f j − 1 ( x ) {\displaystyle f_{j}(x)=g_{j-1}(x)+f_{j-1}(x)} という変形が可能になり、これを再帰的に繰り返すと多重解像度解析になる。
関数 f j ( x ) {\displaystyle f_{j}(x)} をスケーリング関数 φ {\displaystyle \phi } で展開した上で、
f j ( x ) = ∑ k c k ( j ) 2 j / 2 φ ( 2 j x − k ) = ∑ k c k ( j ) φ j , k ( x ) {\displaystyle f_{j}(x)=\sum _{k}c_{k}^{(j)}2^{j/2}\phi (2^{j}x-k)=\sum _{k}c_{k}^{(j)}\phi _{j,k}(x)}
下記のウェーブレット関数 ψ {\displaystyle \psi } への展開を用いて、
g j ( x ) = ∑ k d k ( j ) 2 j / 2 ψ ( 2 j x − k ) = ∑ k d k ( j ) ψ j , k ( x ) {\displaystyle g_{j}(x)=\sum _{k}d_{k}^{(j)}2^{j/2}\psi (2^{j}x-k)=\sum _{k}d_{k}^{(j)}\psi _{j,k}(x)}
もっとも単純な例である。ハールウェーブレットによる多重解像度解析をJavaで記述した。
下記コードは上記を逆ウェーブレット変換する。
f ( x ) ∈ V 0 {\displaystyle f(x)\in V_{0}} ならば f ( x − k ) ∈ V 0 , ∀ k ∈ Z {\displaystyle f(x-k)\in V_{0},\ \forall k\in \mathbf {Z} }
φ ( x ) ∈ V 0 {\displaystyle \phi (x)\in V_{0}} が存在して { φ ( x − k ) : k ∈ Z } {\displaystyle \left\{\phi (x-k):k\in \mathbf {Z} \right\}} が V 0 {\displaystyle V_{0}} においてRiesz基底を成す。すなわち、任意の f ∈ V 0 {\displaystyle f\in V_{0}} に対して数列 { a k : k ∈ Z } ∈ l 2 {\displaystyle \left\{a_{k}:k\in \mathbf {Z} \right\}\in l^{2}} がただ一つ存在して、 f = ∑ k a k φ ( x − k ) {\displaystyle f=\sum _{k}a_{k}\phi \left(x-k\right)} と表される。