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