wavelet tranformation(cont.)

縦軸スケール版、周波数(1/a)版。

aの幅 グリッド幅a グリッド幅b  OD

WT  波形  FFT  グリッド  グリッド(周波数?)

連続ウェーブレット変換のテスト。入力式を1024点のFFTを利用してウェーブレット変換する。(ナイキスト周波数512,aで言えば下限0.0020)FFTはこちらを利用した。

フーリエ変換が正弦波を基本として信号を分解するのに対して、ウェーブレット変換はウェーブレットと呼ばれる”波束”のようなものを基本にして信号を分解する。このウェーブレットの局在性により、変換された係数はスケーリングaに加えてシフトbの二変数で記述でき、フーリエ変換では失うってしまう時間方向の情報も保持できる。

f(t)のウェーブレット変換は具体的には \[ \mathcal{W}[f](a,b)=\int dt \psi^*_{ab}(t) f(t)\\ ~~~~~~\mathrm{where}~~~\psi_{ab}(t)=\frac{1}{\sqrt{a}}\psi( \frac{t-b}{a}) \] で表される。ψ_abはシフト・スケーリングされたウェーブレットで、元のψはマザーウェーブレットと呼ばれる。マザーウェーブレットには色々あるが、最も簡単なのはHaarのウェーブレット \[ \psi(t)= \begin{cases} 1 & 0\leq t\lt 1/2\\ -1 & 1/2\leq t\lt 1\\ 0 & \mathrm{otherwise} \end{cases} \] などがある。

ここで、ウェーブレット変換の式を見ると、これは畳み込み積分になっていることが分かる。それを利用すると、 \[ \begin{align} \mathcal{W}[f](a,b)&=\int dt \frac{1}{\sqrt{a}}\psi^*( \frac{t-b}{a}) f(t)\\ &=\left[\frac{\psi^*(\cdot/a)}{\sqrt{a}} * f\right](b)\\ &=\mathcal{F}^{-1}\left[\mathcal{F}\left[\frac{\psi^*(\cdot/a)}{\sqrt{a}} * f\right]\right](b) \end{align} \] ここでFはフーリエ変換。畳み込みのフーリエ変換については畳み込み定理が使えるので、 \[ \mathcal{W}[f](a,b)=\mathcal{F}^{-1}\left[\mathcal{F}\left[\frac{\psi^*(\cdot/a)}{\sqrt{a}}\right]\mathcal{F}[f]\right](b) \] と書ける。よって、ウェーブレットと波形のフーリエ変換を計算したものを単純にかけて、逆フーリエ変換すればウェーブレット変換が計算出来ることが分かった。また、FFTを用いることでNlogNのオーダーでウェーブレット変換を計算できる。実際、上の計算ではこの方法を用いている。

評価すると面白いかもしれない式

備考
sin(10*t*2*pi*t)周波数が変化する波形
sin(5*2*pi*t)*sin(50*2*pi*t)うなり
exp(-(t-0.5)*(t-0.5)/2)ガウシアン
sin(10*2*pi*t)*exp(-(t-0.5)*(t-0.5)*100)ガウシアン波束
sin(20*2*pi*t)*exp(-(t-1/3)*(t-1/3)*100)+sin(50*2*pi*t)*exp(-(t-2/3)*(t-2/3)*100)ガウシアン波束2つ。aの幅0.0002ぐらいで
H(1/3-t)*sin(9*2*pi*t)+H(t-1/3)*H(2/3-t)*sin(30*2*pi*t)+H(t-2/3)*sin(15*2*pi*t)不連続周波数変化。H(t)は階段関数
H(t-0.5)-2*H(t-0.55)+H(t-0.60)a=0.1,b=0.5のHaarウェーブレット

トップ