MATHEMATICAチュートリアル

自分でウェーブレットを定義する

正しいテンプレートを使うことで,ウェーブレット解析フレームワークに組み込めるウェーブレットを定義することができる.ウェーブレット wave という形式であり,ここで wfam はウェーブレット族を示すシンボルを意味し,args は必要な指定を提供する.

wfam がシステムによりウェーブレット族と認識されるようにするためには,特性 Trueに設定されている必要がある.ここで patt は受け入れられる引数 args にマッチするパターンである.

WaveletQシンボルがユーザのウェーブレットならばTrueに設定する

ウェーブレットの初期化特性

ユーザのウェーブレットは直交も双直交もサポートされている.直交ウェーブレットは特性 を,双直交ウェーブレットは特性 を設定して示される.

"OrthogonalQ"ウェーブレットが直交ならばTrueに設定する
"BiorthogonalQ"ウェーブレットが双直交ならばTrueに設定する

ウェーブレットの特性

主なローパスフィルタ係数を計算するためには,特性 を設定しなければならない.ここで prec はフィルタ係数の精度を示す.同様に,デュアルローパスフィルタ係数を計算するためには を設定しなければならない.のどちらの特性もという形式のリストを返すことが想定されている.ここで は指標, は対応するフィルタ係数である.形式のリストが返されたら,指標 は0から始まると想定される.フィルタ係数 が数値ではなく,指標 が整数でない場合は,エラーメッセージが出る.

例題

フランクリン(Franklin)ウェーブレット

フランクリンウェーブレット族を定義する.

ウェーブレットを初期化する.
In[59]:=
Click for copyable input
特性を設定する.
In[2]:=
Click for copyable input
フランクリンウェーブレット係数は,積分により与えられる.
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
In[6]:=
Click for copyable input

これでユーザのウェーブレットに関する上記の定義が,さまざまなウェーブレット操作を実行するために使えるようになった.

フィルタ係数を計算する.
In[9]:=
Click for copyable input
In[10]:=
Click for copyable input
Out[10]=

スケーリング関数は,再帰方程式 を使って計算される.ここで はローパスフィルタ係数である.

スケーリング関数を計算する.
In[11]:=
Click for copyable input
Out[11]=
ウェーブレット変換を実行する.
In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
Out[13]=

ルジャンドル(Legendre)のウェーブレット

次はルジャンドルのウェーブレットの例である.

ウェーブレットを初期化する.
In[8]:=
Click for copyable input
ルジャンドルのウェーブレットは直交ではないが,ウェーブレット変換を実行するためには,それをTrueに設定する必要がある.
In[9]:=
Click for copyable input
ローパスフィルタ係数を計算する関数を指定する.
In[11]:=
Click for copyable input
フィルタ係数を計算する.
In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
Out[13]=
スケーリング関数を計算する.
In[15]:=
Click for copyable input
Out[15]=

ウェーブレット関数は再帰方程式 を使って計算される.ここで はハイパスフィルタ係数である.

ウェーブレット関数を計算する.
In[17]:=
Click for copyable input
Out[17]=
ウェーブレット変換を実行する.
In[153]:=
Click for copyable input
Out[153]=
In[154]:=
Click for copyable input
Out[154]=

Le Gallのウェーブレット

Le Gallのウェーブレットを生成する.

ウェーブレットを初期化する.
In[1]:=
Click for copyable input
特性を設定する.
In[2]:=
Click for copyable input
In[3]:=
Click for copyable input
特性と特性を定義する.
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input

閾値にLe Gallウェーブレットを使う.

In[6]:=
Click for copyable input
Le Gallウェーブレットを使ってStationaryWaveletTransformを実行する.
In[7]:=
Click for copyable input
Out[7]=
In[8]:=
Click for copyable input
Out[8]=
In[9]:=
Click for copyable input
Out[9]=
New to Mathematica? Find your learning path »
Have a question? Ask support »