Wavelet超入門 その12 再びstep関数を調べる
基本wavelet
1.先ず最初に
maximaにて、以下のようにscaling関数 phi(0,1) と、基本wavelet psi(0,1)を、定義します。
このように定義しておくと、maximaは
と、返してくれますので、時間t を入力する手間が省けます。
そして、描画する関数を、ちょいと、定義しておきます。
そうしますと、scaling関数 phi(0,1)、psi(0,1)のグラフは
と、描けます。
で、大事なのは、ここからです。
2.これは、何を意味しているのか?
今、phi(0,1/2) と言う関数を描いてみます。
で、この関数を、 scaling関数 phi(0,1)、 基本wavelet psi(0,1)で、表現しようと言う訳です。
phi(0,1/2)は、時間幅は、phi(0,1)、psi(0,1)の半分ですから
周波数で言えば、 phi(0,1)、psi(0,1)の 2倍の周波数にあたります。
=
+
の、1/2である事は、直感的に、すぐ解ります。
phi(0,1/2) = 1/2*( phi(0,1) + psi(0,1)
)
これって、 f(t)を、フーリエ級数展開した時の
と、よく似てません?
phi(0,1)と、psi(0,1)が直交していますし....
――――――――――――――――――――――――――――――――――――――――――――――――
(直感的には、内積はゼロである事は解るが、計算させてみると)
これって、元のpsi(0,1)と、おんなじですね。
エラーコード 2が出るのは
2 if exvessive roundoff error is detected
やから、丸め過ぎと、言う事なんでしょうが、
phi(0,1)*psi(0,1) の内積はゼロになります....
(所で、maximaって、特異点のある関数も、積分してしまうらしいですよ.... QUADPACK )
――――――――――――――――――――――――――――――――――――――――――――――――
で、結局、
周期が半分(周波数は2倍)の関数 phi(0,1/2)を、
周期が倍(周波数は基本周波数)の関数、 phi(0,1)と、psi(0,1)で、表現した事になると思います。
3.では、これは?
うーん、直感的に、phi(0,1)と、psi(0,1)を、どう処理したらいいか、解らん。
で、先ほど考えた時
phi(0,1/2) =
1/2*( phi(0,1) +psi(0,1)
)
やったと、おんなじように
phi(1/2,1) = 1/2*( phi(0,1)
-psi(0,1) )
で、ある事も、すぐ解る
=
+
の、半分。
そやから、これは、代数的にやらんと、直感では、私には無理ですねん。
2*phi(0,1/2)+5*phi(1/2,1)=2*1/2*( phi(0,1) +psi(0,1) ) +5*1/2*(
phi(0,1) -psi(0,1)
)
=(2+5)/2*phi(0,1) + (2-5)*psi(0,1)
と、なって、 これは、元の関数と同じになります。
で、結論として
周期が半分でサンプルされた2点を、step関数で表現すると
2倍の周期の関数で表現するには
phi 関数の係数は、元の2点の 平均 (s1+s2)/2
psi 関数の係数は、元の2点の 差の平均 (s1-s2)/2
になる。
サンプル点が、4つ、8つ、16個でも、これの繰り返しになるようです。
H.20.12.8