1.Octaveを使って、wavelet
Daubechies関数の、値を収納する配列を、Octaveに移すのが面倒なので、
Octaveで、プログラムを作りました。(Maixmaでは、Fourier変換が難しい為でもありますねん。)
こんな感じです。
......
#initialize
phi
array
phi(reso+1)=phi_origin(2);
phi(reso*2+1)=phi_origin(3);
#sub
function###############################################
function
retval=phi_value(array,index,my_size)
if( (index<=1) | (index>my_size) )
retval=0;
else
retval=array(index);
endif
endfunction
############################################################
#
calc phi function value
for k=1:n
for
i=1:my_size
index=i*2-1;
x=p(1)*phi_value(phi,index,my_size);
x=x+p(2)*phi_value(phi,index-reso,my_size);
x=x+p(3)*phi_value(phi,index-reso*2,my_size);
x=x+p(4)*phi_value(phi,index-reso*3,my_size);
phi(i)=x;
x=0;
index=0;
endfor
endfor
........
よかったら、mファイルを、使ってみて下さい。
Octaveを起動して、'daubechies2'
と、入力してみて下さい。 Nの数値を入力するプロンプトが出ます。
今の場合 7を入力しましたので、値を入れる配列は、385個出来上がります。(128*3+1)
returnキーを押すと、グラフが表示されます。
N=7では、細かすぎて、spectrumは、左に寄ってしまいますが、functions の形は、よく見えます。
ほんま、scaling function も、mother
waveletも、複雑な形をしていて、これは、y=f(x)で表現できないはずやんか......
|