Main Content

バンドパス フィルターとしての連続ウェーブレット変換

フィルター処理手法としての CWT

連続ウェーブレット変換 (CWT) は信号の内積 f(t) を解析ウェーブレットの平行移動されたバージョンと膨張したバージョン ψ(t). で計算します。CWT の定義は次のとおりです。

C(a,b;f(t),ψ(t))=f(t)1aψ*(tba)dt

CWT を逆フーリエ変換として書き換え、信号の周波数に基づいたフィルター処理として CWT を解釈することもできます。

C(a,b;f(t),ψ(t))=12πf^(ω)ψ^¯(aω)eiωbdω

ここで f^(ω)ψ^(ω) は信号とウェーブレットのフーリエ変換です。

前の方程式から、時間でウェーブレットを引き伸ばすと、周波数領域で対応するサポートが縮小することがわかります。周波数サポートの縮小に加えて、ウェーブレットの中心周波数が低周波数の方向にシフトします。次の図は、架空のウェーブレットと 1、2、4 のスケール (膨張) 係数に対するこの影響を示しています。

これは、CWT を入力信号のバンドパス フィルター処理として表しています。低いスケールの CWT 係数は高周波数の入力信号におけるエネルギーを表し、高いスケールの CWT 係数は低周波数の入力信号におけるエネルギーを表します。ただし、フーリエ バンドパス フィルター処理とは違い、CWT のバンドパス フィルターの幅はスケールに対して反比例します。CWT "フィルター" の幅はスケールの増加に伴い減少します。これは、時間における信号のサポートが広くなると、周波数におけるそのサポートが狭くなるという、信号の時間と周波数のサポート間にある "不確かな" 関係に基づいています。逆の関係も成立します。

ウェーブレット変換では、スケールまたは膨張操作はエネルギーを維持するために定義されます。周波数サポートを縮小しながらエネルギーを節約するには、ピーク エネルギー レベルが増加する必要があります。Wavelet Toolbox™ での cwt の実装では L1 正規化を使用します。"品質係数" またはフィルターの "Q 係数" は、帯域幅に対するピーク エネルギーの比率です。ウェーブレットの周波数サポートを縮小または引き伸ばすと、そのピーク エネルギーが比例して増減するため、ウェーブレットは定 Q フィルターと呼ばれることがよくあります。

DFT ベースの連続ウェーブレット変換

前の節の方程式は CWT をフーリエ変換の積に対する逆フーリエ変換として定義しました。

C(a,b;f(t),ψ(t))=12πf(ω)ψ^*(aω)ejωbdω

逆フーリエ変換の "時間" 変数は平行移動パラメーター b です。

これは、逆フーリエ変換を使用して CWT を計算できることを示しています。離散フーリエ変換とその逆変換の計算に効率的なアルゴリズムがあるため、可能な場合は fftifft を使用すると、多くの場合、大幅な節約を達成できます。

フーリエ領域での CWT の図を得るには、ウェーブレット変換の定義から始めます。

<f(t),ψa,b(t)>=1af(t)ψ*(tba)dt

次を定義すると

ψ˜a(t)=1aψ*(t/a)

ウェーブレット変換を次のように書き換えることができます。

(fψ˜a)(b)=f(t)ψ˜a(bt)dt

これにより、CWT を畳み込みとして明示的に表現します。

CWT の離散化バージョンを実装するには、入力シーケンスが長さ N のベクトル x[n] であると仮定します。前の畳み込みの離散バージョンは次のとおりです。

Wa[b]=n=0N1x[n]ψ˜a[bn]

CWT を求めるには、シフト パラメーター b の値ごとに畳み込みを計算し、スケール a ごとにこのプロセスを繰り返さなければならないようです。

ただし、この 2 つのシーケンスが循環して拡張される (長さ N に周期化される) 場合、循環畳み込みを離散フーリエ変換の積として表現できます。CWT は次の積の逆フーリエ変換です。

Wa(b)=1N2πΔtk=0N1X(2πk/NΔt)ψ*(a2πk/NΔt)ej2πkb/N

ここで、Δt はサンプリング間隔 (周期) です。

CWT を逆フーリエ変換として表現すると、計算効率の高い fft アルゴリズムと ifft アルゴリズムを使用して、畳み込みを計算するコストを削減できます。

関数 cwt は CWT を実装します。