ウェーブレット変換とは:定義・仕組み・連続・離散の違いと応用例
ウェーブレット変換は、時間領域と周波数領域の両方で信号を解析できる時間–周波数表現の一つです。局所的な時間変化(短時間の特徴や不連続点)を検出しやすいため、信号のノイズ除去、特徴抽出、圧縮、異常検知、画像処理や生体信号解析など幅広い応用に使われます。
連続ウェーブレット変換(CWT)
連続ウェーブレット変換は、信号 f(t) をマザーウェーブレット ψ(母波レット)でスケーリング(拡大・縮小)および平行移動して相互相関を取ることで、時間とスケール(周波数に対応)両方の局所情報を得ます。数式では次のように表されます(下の図は同じ式を示します)。
[Wψ f](a,b) = (1/√a) ∫_{-∞}^{∞} f(t) ψ^*((t−b)/a) dt
ψ はいわゆる マザーウェーブレット(母波レット)で、信号解析の基本波形です。一般にゼロ平均(∫ψ(t)dt = 0)などの条件を満たします。
a はスケール(拡大・縮小)因子で、a を大きくすると低周波成分(粗い特徴)に、a を小さくすると高周波成分(細かい特徴)に敏感になります。
b は時間方向の平行移動(シフト)で、解析点の時間位置を決めます。
印は複素共役を表します。ψ が複素-valued の場合に用います。
連続ウェーブレット変換の結果はスケール a と位置 b の関数 Wψf(a,b) であり、信号の局所的な周波数成分(スケール)とその時間変化を可視化できます。逆変換により元の信号を復元することも可能で、マザーウェーブレットは可換性(admissibility)条件を満たす必要があります(簡単には高域成分を表現できるように平均が 0 であるなど)。
離散ウェーブレット変換(DWT) — スケールとシフトの離散化
実用上はスケール a と位置 b を離散値に取り、計算可能にした離散ウェーブレット変換を使います。一般的な離散化は次のように定義します:
スケール a = a_0^m、シフト b = a_0^m k T の場合(a_0 > 1, T > 0, m, k は整数)により離散化されます。
a = a 0 m {\displaystyle a={a_{0}}^{m}} and b = a 0 m k T {\displaystyle b={a_{0}}^{m}kT}の場合。
特に二進(ダイアディック)スケール a_0 = 2 を用いる場合は
a = 2^m, b = 2^m k T
W ψ f ] ( m , k ) = 1 2 m ∫ - ∞ ∞ ∞ f ( t )ψ ∗ ( 2 - m t - k T ) d t {displaystyle ¶left[W_{\psi }fright](m.k)={\frac {1}{\sqrt {2^{m}}}}\int _{-\infty }^{\infty }{f(t)\psi ^{*}\left(2^{m}t-kT\right)}dt\, } .
m は周波数(スケール)を表す整数インデックスです。m が大きいほど低周波成分に対応します。
k は時間方向の位置インデックス(シフト)です。
T はサンプリング間隔や母波レットに依存する定数で、離散化の粒度を規定します。
離散ウェーブレット変換は、実装上フィルタバンク(ハイパス/ローパスフィルタを用いたサブバンド分解)やリフティングスキームを用いて効率よく計算できます。DWT は多重解像(マルチレゾリューション解析)を自然に実現し、信号を異なる周波数帯域の近似係数と詳細係数に分解します。
二次元離散ウェーブレット変換(画像処理)
画像など二次元信号では、行方向と列方向に対して1次元DWTを適用して、近似(低周波)成分と3種類の詳細(水平・垂直・対角)成分に分解します。2D DWT の畳み込み表現の一例は次の通りです:
W ψ f ] ( m , k ) = ∫ - ∞ ∞ ∞ f ( t ) h m ( 2 m k T - t ) d t {\displaystyle \left[W_{\psi }f\right](m,k)=int _{-\infty }^{infty }{f(t)h_{m}left(2^{m}kT-t\right)}dt, } .
ここで、h_m はスケール m に対応する連続フィルタのインパルス応答であり、母波レットのスケーリング版に対応します。二次元DWTはJPEG2000のような画像圧縮や、画像ノイズ除去、エッジ検出に広く利用されています。
母波レットの種類と選び方
代表的な母波レットには以下のようなものがあります。用途に応じて、時域の局在性(短いサポート)や周波数特性(滑らかさ)を考慮して選びます。
- Haar(ハール):最も単純で計算が速い。急激な変化に敏感だが,平滑性は低い。
- Daubechies(ダベシーズ):サポートがコンパクトで多くのバリエーションがあり,信号圧縮やノイズ除去でよく使われる。
- Symlet / Coiflet:より滑らかな特性を持つ。位相特性などで有利な場合がある。
- Morlet、Mexican Hat(Ricker):連続解析や周波数分解能が重要な場合に使われる(複素値のものもある)。
実用上の注意点と実装
- 境界処理(ゼロパディング、周期延長、対称延長など)の選択は解析結果に影響します。
- 分解レベル(何段まで分解するか)は信号長と解析目的(圧縮、特徴抽出など)で決めます。
- DWT は O(N) または O(N log N) の計算量で実装可能で、多くのソフトウェアライブラリ(例:Python の PyWavelets など)で利用できます。
- 実データ解析では、母波レットの選択、しきい値処理(ノイズ除去)、係数の量子化(圧縮)などの設計が重要です。
離散時間(離散信号)に対するウェーブレット変換
離散時間の信号(サンプル列)に対しては、DWT を離散畳み込みとダウンサンプリングによるフィルタバンクで実装します。各段で低域成分(近似係数)と高域成分(詳細係数)に分け、これを繰り返して多重解像度表現を得ます。リフティングスキームによる実装はメモリと計算をさらに節約し、整数変換も可能にします。
主な応用例
- ノイズ除去:高周波ノイズに対応する詳細係数をしきい値処理して再合成することで、滑らかな信号復元が可能です。
- 信号・画像圧縮:JPEG2000 のように DWT に基づく圧縮は、係数のエネルギー集中を利用して高圧縮率と良好な視覚品質を両立します。
- 特徴抽出・異常検知:局所的な瞬時周波数変化や突発的な変化を捉え、機械学習の前処理や故障検出に用いられます。
- 生体信号解析:心電図(ECG)や脳波(EEG)のイベント検出、リズム解析、アーチファクト除去など。
まとめると、ウェーブレット変換は時間・周波数両方の局所性を扱える強力な解析手法であり、連続版(CWT)と離散版(DWT)は用途と実装の要件に応じて使い分けられます。マザーウェーブレットの選択、分解レベル、境界処理などが解析結果に影響するため、目的に応じた設計が重要です。


周波数破壊信号の連続ウェーブレット変換5つの消失モーメントを持つシンボレットを使用した。
質問と回答
Q:ウェーブレット変換とは何ですか?
A:ウェーブレット変換とは、ノイズ除去、特徴抽出、信号圧縮に用いられる信号の時間-周波数表現である。
Q: 連続信号のウェーブレット変換はどのように定義されますか?
A: 連続信号のウェーブレット変換は、母ウェーブレットを乗じた関数の全値に対する積分として定義され、パラメータ「a」と「b」はそれぞれ拡張と時間シフトを表します。
Q: ダイアディック離散ウェーブレット変換とは何ですか?
A: ダイアディック離散ウェーブレット変換とは、通常の離散ウェーブレット変換を周波数スケール「m」、時間スケール「k」、定数「T」で離散化した変換です。この変換は、ある関数のすべての値に対する積分と、与えられたmに対して母ウェーブレットと同じインパルス特性フィルタを掛けたものとして書き直すことができます。
Q: この文脈で「マザーウェーブレット」とは何を指すのですか?
A: この文脈では、「マザーウェーブレット」は、特定のタイプの変換(この場合はウェーブレット変換)を計算するための基礎を形成するために他の関数と組み合わせて使用される関数を指します。
Q: ダイアディックディスクリートウェーブレットはどのように計算するのですか?
A: ダイアディック離散ウェーブレットは、関数のすべての値に対する積分と、与えられたmに対してマザーウェーブレットと同じインパルス特性フィルタを掛けて計算します。さらに、パラメータとして周波数スケールm、時間スケールk、定数Tを必要とします。
Q: 連続ウェーブレットを定義するとき、'a'と'b'は何を表すのですか?
A: 連続ウェーブレットを定義するとき、'a'は拡張を表し、'b'は時間シフトを表します。