パラメータ設定
リセット
N が 2 のべきでないときは最も近い 2 のべきに丸めて警告します。
係数ピラミッドと再構成
青=原信号 x[n]/緑=最終近似係数 a^(L)/赤=各レベルの詳細係数 d^(L)/紫=しきい値処理後の再構成 x_rec
理論・主要公式
Haar ウェーブレットは隣り合う 2 サンプルの平均と差で定義される最も単純な直交ウェーブレットです。
1 段の分解:近似係数 a と詳細係数 d。直交性のため $\sqrt{2}$ で正規化します:
$$a_i = \frac{x_{2i} + x_{2i+1}}{\sqrt{2}}, \quad d_i = \frac{x_{2i} - x_{2i+1}}{\sqrt{2}}$$
N サンプルから L 段まで再帰的に適用すると、各段でサンプル数が半分になり、最終近似係数の長さは $N/2^L$ になります:
$$\text{係数総数} = N, \qquad \text{最終 } |a^{(L)}| = N / 2^{L}$$
逆変換は対称的に再構成できます:
$$x_{2i} = \frac{a_i + d_i}{\sqrt{2}}, \quad x_{2i+1} = \frac{a_i - d_i}{\sqrt{2}}$$
圧縮:詳細係数のうち絶対値がしきい値以下を 0 にすると、非ゼロ係数が減り MSE がわずかに増えます。Haar は直交基底なのでエネルギーが保存され、係数空間の MSE と信号空間の MSE が等しくなります。
Haar ウェーブレット変換シミュレーターとは
🙋
ウェーブレットって、フーリエ変換と何が違うんですか?教科書を読んでもいまいちピンと来なくて。
🎓
ざっくり言うと、フーリエは「どの周波数がどれくらい含まれているか」だけ教えてくれるけど、「いつその周波数が出ているか」が分からない。ウェーブレットは時間と周波数の両方を同時に見られるんだ。Haar はその中で一番単純で、隣り合う 2 つのサンプルを足して 2 で割る(平均)と引いて 2 で割る(差)、それだけ。上のシミュレーターで信号タイプを「2=チャープ」にすると、レベル 1 の詳細係数が右半分で大きくなる。これは「後半に高周波が来た」ことを示しているんだよ。
🙋
なるほど。じゃあ「分解レベル」を増やすと何が変わるんですか?レベル 6 まで上げてみたら、最終近似係数(緑)がほぼ平らになりました。
🎓
レベルを 1 段増やすごとに、近似係数の長さが半分になる。N=256, L=6 なら最終近似は 256/64=4 サンプルだ。粗い解像度になればなるほど、信号の「直流成分に近い大まかな形」しか残らない。逆に詳細係数 d^(1)(最上段の赤)はサンプル数 128 もあって、最も細かい高周波変化を捉える。多重解像度解析(MRA)と呼ばれるのは、こうやって信号を「粗い形+細かい変化+もっと細かい変化+…」と階層的に分けるからだよ。
🙋
圧縮の仕組みも面白いですね。しきい値を 0.1 にしても再構成 MSE はかなり小さい。これは何が起きているんですか?
🎓
いい質問だ。自然な信号は「少数の大きな係数」と「大量の小さな係数」に分かれる。小さな係数を 0 にしても情報の損失は少ない——これが「スパース性」だ。Haar は直交基底なので、係数空間での誤差がそのまま信号空間の誤差になる(パーセバルの定理)。実際、しきい値スライダーを 0.0 から 0.3 へ動かしてみて。非ゼロ係数の数が一気に減るのに、MSE はわずかしか増えない。JPEG 2000 がこの原理で圧縮を行う理由が直感的に分かるはずだ。
🙋
信号タイプ 1 のステップ信号でしきい値を上げると、再構成(紫)の境界がギザギザになりますね。これは何ですか?
🎓
Haar の弱点が出たね。Haar 基底自体が「階段関数」なので、不連続点を表現するのは得意だけど、再構成した波形は階段状になりがちなんだ。逆に滑らかな曲線(正弦)は Haar だとギザギザが残る。実務でこの問題を解決するために Daubechies (db4 や db9/7) のようなフィルタ長の長いウェーブレットが開発された。圧縮効率も画質も Haar より格段に良くなるが、計算コストとフィルタ設計の難しさが増す——というトレードオフがあるんだ。
よくある質問
JPEG 2000 で Haar ではなく Daubechies が使われるのはなぜですか?
JPEG 2000 のロッシー圧縮では Daubechies 系の双直交ウェーブレット db9/7、ロスレスでは db5/3 が標準です。Haar は連続関数の近似に弱く、平坦領域でブロック状の再構成誤差が見える一方、db9/7 は消失モーメントが多く滑らかな信号を少数の係数で表せます。同じ圧縮率での画質は db9/7 が圧倒的に良いため、画像規格では Haar はほぼ使われません。Haar の出番は教育用と、組み込み機器のような計算リソースが極端に少ない場合の差分符号化です。
Daubechies と Haar はどちらを使い分ければよいですか?
エッジ検出や階段関数の解析、極端な計算速度が必要な組込み用途では Haar が適しています。一方、画像圧縮・音声解析・滑らかな信号の特徴抽出には Daubechies (db2, db4, db9/7) や Coiflet, Symlet が選ばれます。一般則として「信号が滑らかなら長いフィルタ、エッジが多いなら短いフィルタ」と覚えると指針になります。本ツールで信号タイプ 1(ステップ)と 0(正弦)の Haar 再構成を比べると、長所と短所が一度に体感できます。
画像圧縮では具体的にどう適用するのですか?
2D 画像には行方向と列方向に分離可能フィルタを順に適用する「2D 離散ウェーブレット変換」を用います。各レベルで LL(近似)、LH(水平詳細)、HL(垂直詳細)、HH(対角詳細)の 4 サブバンドができ、LL に対して再帰的に変換を繰り返します。詳細サブバンドの大半が小さい値なので、量子化と算術符号化を組み合わせて高い圧縮率を実現します。JPEG 2000 や FBI 指紋データベース(WSQ 圧縮)が代表的な応用です。
エッジ検出にウェーブレットを使う利点は何ですか?
詳細係数の絶対値はその位置での信号の局所的変化量に対応するため、ピーク位置がエッジになります。複数レベルの詳細係数を組み合わせると、ノイズ(最高解像度のみで現れる)と真のエッジ(複数スケールで一貫して現れる)を区別できます。Mallat と Zhong (1992) のマルチスケールエッジ表現はこの考え方の代表例です。Sobel や Canny より頑健な検出が必要な医用画像、地震波解析、心電図解析などで利用されています。
実世界での応用
画像圧縮(JPEG 2000): 2D 離散ウェーブレット変換は、JPEG の DCT に代わる次世代圧縮の中核技術です。ブロック歪みが原理的に発生せず、同じファイルサイズでも JPEG より滑らかで自然な画質が得られます。医用画像のアーカイブ、デジタルシネマ配布(DCP)、衛星画像の伝送など、画質要求の厳しい分野で標準採用されています。
音声・音楽の圧縮と解析: MP3 が用いる MDCT に対し、ウェーブレットは過渡音(打楽器のアタックなど)に強いという特徴があります。ピアノの発音瞬間や声の子音のような短時間の鋭い変化を、少ない係数で正確に表現できます。音声の雑音除去・音源分離・楽器識別にも応用されます。
地震波・脳波・心電図の特徴抽出: 非定常な生体信号や地震波形は、定常を仮定するフーリエ解析と相性が悪く、ウェーブレットが第一選択肢になります。Haar の差分係数は P 波の初動検出、心電図 R 波の検出、てんかん発作の前兆検知などに広く使われています。スケールごとの詳細係数を見ることで、ノイズと真の特徴を分離できます。
機械学習の特徴量と次元削減: ウェーブレット係数を入力特徴とすることで、CNN 以前の画像認識・テキスト解析で高い性能を実現していました。現在も、組み込み機器のような計算リソース制約下では、ウェーブレット特徴+軽量分類器の組み合わせが効率的な選択肢として使われています。指紋認証・顔認証の前処理にも利用例があります。
よくある誤解と注意点
最も多い誤解は、「ウェーブレットはフーリエ変換の代替品で、いつでもより優れている」 と考えることです。実際は適材適所で、周波数成分を高精度に知りたい定常信号(正弦波の純度測定、共振周波数の同定など)ではフーリエが圧倒的に有利です。ウェーブレットの強みは「いつ・どの周波数が現れたか」を同時に見られる点で、過渡現象や局所的特徴を持つ信号に最適です。本ツールで信号タイプ 2(チャープ)を選び、各レベルの詳細係数が右側ほど大きくなる様子を見ると、フーリエでは表現しきれない時間情報が含まれていることが分かります。
次に多いのが、「分解レベルを上げれば上げるほど解像度が良くなる」という思い込み です。実際には、最終近似係数の長さは $N/2^L$ なので、N=256 で L=8 とすると最終近似は 1 サンプルしか残らず、信号全体の平均値しか分かりません。本ツールでは L を 6 で頭打ちにしていますが、これは実用上「これ以上分解しても粗くなるだけ」という上限の目安です。実務では信号の長さと注目したい周波数帯から L を決め、たとえば 1024 サンプル・サンプリングレート 1 kHz なら L=5 程度で十分なケースが多いです。
最後に、しきい値処理を強くすればするほど圧縮率は上がるが、必ず情報損失が伴う点 を忘れてはいけません。本ツールの MSE はあくまで「数値的な平均二乗誤差」で、知覚的な画質や音質とは異なります。実際の JPEG 2000 や MP3 では、心理視覚・心理聴覚モデルに基づく非一様量子化が行われ、人間が気付きにくい高周波を優先的に削ります。さらに、しきい値を絶対値ではなく「ソフトしきい値」(しきい値を引いた値)にすると、ノイズ除去(Donoho の WaveShrink)に向きます。用途に応じてしきい値処理の方式を選ぶことが、ウェーブレット応用の鍵です。