Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ウェーブレット ファミリ

Wavelet Toolbox™ ソフトウェアには、連続解析と離散解析の両方に使用できる多数のウェーブレットが含まれています。離散解析の場合、たとえば、直交ウェーブレット (Daubechies の極値位相ウェーブレットおよび最小非対称ウェーブレット)、B スプライン双直交ウェーブレットなどがあります。連続解析の場合、Wavelet Toolbox ソフトウェアには、Morlet、Meyer、ガウス導関数、Paul などのウェーブレットが含まれています。

ウェーブレットの選択は、信号またはイメージの特性およびアプリケーションの性質によって決まります。解析ウェーブレットと合成ウェーブレットの特性を理解すれば、アプリケーション用に最適化されたウェーブレットを選択できます。

ウェーブレット ファミリによって、いくつかの重要な性質が異なります。例として以下があります。

  • 時間と周波数におけるウェーブレットのサポートおよび減衰率。

  • ウェーブレットの対称性または反対称性。付随する完全再構成フィルターの位相は線形です。

  • 消失モーメントの数。ウェーブレットの消失モーメントの数が多いと、さまざまな信号やイメージに対してスパース表現を実現できます。

  • ウェーブレットの正則性。滑らかなウェーブレットほど、周波数分解能がシャープになります。さらに、ウェーブレット構築の反復アルゴリズムが速く収束します。

  • スケーリング関数 φ の存在。

連続解析の場合、Wavelet Toolbox ソフトウェアの解析ウェーブレットに基づく解析は一部のウェーブレットが対象です。詳細については、cwt および icwt を参照してください。基本的な理論上の目的については、逆連続ウェーブレット変換を参照してください。CWT による時間-周波数解析では、シミュレートした信号および実際の信号に対する連続ウェーブレット変換の使用について説明しています。

コマンド ラインで「waveinfo」と入力すると、利用できるウェーブレット ファミリの主な性質が表示されます。特定のウェーブレット ファミリについては、ウェーブレット ファミリの略称を指定して waveinfo を使用します。ウェーブレット ファミリの略称は、次の表および waveinfo のリファレンス ページに記載されています。

ウェーブレット ファミリの略称

ウェーブレット ファミリ名

'haar'

Haar ウェーブレット

'db'

Daubechies ウェーブレット

'sym'

Symlet

'coif'

Coiflet

'bior'

双直交ウェーブレット

'rbio'

逆双直交ウェーブレット

'meyr'

Meyer ウェーブレット

'dmey'

Meyer ウェーブレットの離散近似

'gaus'

ガウス ウェーブレット

'mexh'

Mexican Hat ウェーブレット (別名 Ricker ウェーブレット)

'morl'

Morlet ウェーブレット

'cgau'

複素ガウス ウェーブレット

'shan'

Shannon ウェーブレット

'fbsp'

周波数 B スプライン ウェーブレット

'cmor'

複素 Morlet ウェーブレット

'fk'

Fejer-Korovkin ウェーブレット

Daubechies の最小非対称直交ウェーブレットについての詳細情報を表示するには、次を入力します。

waveinfo('sym')

ウェーブレットとスケーリング関数 (利用可能な場合) を計算するには、wavefun を使用します。

Morlet ウェーブレットは連続解析に適しています。Morlet ウェーブレットに関連付けられたスケーリング関数はありません。Morlet ウェーブレットを計算するには、次を入力します。

[psi,xval] = wavefun('morl',10);
plot(xval,psi); title('Morlet Wavelet');

多重解像度解析に関連するウェーブレットについては、スケーリング関数とウェーブレットの両方を計算できます。次のコードは、4 つの消失モーメントを持つ Daubechies の極値位相ウェーブレットのスケーリング関数とウェーブレットを返します。

[phi,psi,xval] = wavefun('db4',10);
subplot(211);
plot(xval,phi);
title('db4 Scaling Function');
subplot(212);
plot(xval,psi);
title('db4 Wavelet');

離散ウェーブレット解析では、関連するスケーリング関数とウェーブレットよりも興味深いのが解析フィルターと合成フィルターです。wfilters を使用して解析フィルターと合成フィルターを求めることができます。

B スプライン双直交ウェーブレットの分解 (解析) フィルターと再構成 (合成) フィルターを求めます。合成ウェーブレットで 3 つの消失モーメント、解析ウェーブレットで 5 つの消失モーメントを指定します。フィルターのインパルス応答をプロットします。

[LoD,HiD,LoR,HiR] = wfilters('bior3.5');
subplot(221);
stem(LoD);
title('Lowpass Analysis Filter');
subplot(222);
stem(HiD);
title('Highpass Analysis Filter');
subplot(223);
stem(LoR);
title('Lowpass Synthesis Filter');
subplot(224);
stem(HiR);
title('Highpass Synthesis Filter');

Daubechies ウェーブレット: dbN

dbN ウェーブレットは、Daubechies の極値位相ウェーブレットです。N は消失モーメントの数を表します。このフィルターは、文献ではフィルターのタップ数 2N で表されることもあります。このファミリの詳細については、[Dau92] の 195 ページを参照してください。このファミリの主な性質を調べるには、MATLAB® コマンド プロンプトで「waveinfo('db')」と入力します。

Daubechies ウェーブレット db4 (左) と db8 (右)

db1 ウェーブレットは、Haar ウェーブレットとも呼ばれます。Haar ウェーブレットは、線形位相をもつ唯一の直交ウェーブレットです。waveinfo('haar') を使用して、このウェーブレットの主な性質を調べることができます。

Symlet ウェーブレット: symN

symN ウェーブレットは、Daubechies の最小非対称ウェーブレットとも呼ばれます。Symlet は極値位相ウェーブレットよりも対称的です。symN で、N は消失モーメントの数です。このフィルターは、文献ではフィルターのタップ数 2N で表されることもあります。Symlet の詳細については、[Dau92] の 198 ページ、254 ~ 257 ページを参照してください。このファミリの主な性質を調べるには、MATLAB コマンド プロンプトで「waveinfo('sym')」と入力します。

Symlet sym4 (左) と sym8 (右)

Coiflet ウェーブレット: coifN

Coiflet スケーリング関数にも消失モーメントがあります。coifN で、N はウェーブレットとスケーリング関数の両方の消失モーメントの数です。このフィルターは、文献ではフィルター係数の数 3N で表されることもあります。Coiflet の構築については、[Dau92] の 258 ~ 259 ページを参照してください。このファミリの主な性質を調べるには、MATLAB コマンド プロンプトで「waveinfo('coif')」と入力します。

Coiflet coif3 (左) と coif5 (右)

s が十分に正則な連続時間信号である場合、大きい j に対して、係数 s,ϕj,k2j/2s(2jk) で近似されます。

s が次数 d (d ≤ N – 1) の多項式である場合、この近似は等価になります。この性質は、サンプリング問題に関連して、与えられた信号の φj,l に対する展開とそのサンプリング バージョンとの差分を計算するときに使用されます。

双直交ウェーブレット ペア: biorNr.Nd

Haar ウェーブレットは線形位相をもつ唯一の直交ウェーブレットですが、線形位相をもつ双直交ウェーブレットは設計できます。

双直交ウェーブレットの特徴は、スケーリング関数および関連付けられたスケーリング フィルターのペアです。1 つが解析用で、もう 1 つが合成用です。

ウェーブレットおよび関連付けられたウェーブレット フィルターのペアもあります。1 つが解析用で、もう 1 つが合成用です。

解析ウェーブレットと合成ウェーブレットは、異なる数の消失モーメントや異なる正則性の性質をもつことができます。解析には消失モーメントの数が大きいウェーブレットを使用してスパース表現を実現し、再構成には滑らかなウェーブレットを使用することもできます。

双直交ウェーブレット基底の構築の詳細については、[Dau92] の 259 ページ、262 ~ 285 ページおよび [Coh92] を参照してください。このファミリの主な性質を調べるには、コマンド ラインで「waveinfo('bior')」と入力します。

次のコードは、消失モーメントが 3 個および 5 個の B スプライン双直交再構成フィルターまたは分解フィルターを返し、インパルス応答をプロットします。

ローパス フィルターのインパルス応答は、中点に対して対称です。ハイパス フィルターのインパルス応答は、中点に対して反対称です。

[LoD,HiD,LoR,HiR] = wfilters('bior3.5');
subplot(221);
stem(LoD);
title('Lowpass Analysis Filter');
subplot(222);
stem(HiD);
title('Highpass Analysis Filter');
subplot(223);
stem(LoR);
title('Lowpass Synthesis Filter');
subplot(224);
stem(HiR);
title('Highpass Synthesis Filter');

逆双直交ウェーブレット ペア: rbioNr.Nd

このファミリは、前述の双直交ウェーブレット ペアから得られます。

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('rbio')」と入力して調べることができます。

逆双直交ウェーブレット rbio1.5

Meyer ウェーブレット: meyr

ψ および φ はともに周波数領域で、補助関数 ν から定義されています ([Dau92] の 117、119、137、152 ページを参照)。MATLAB コマンド プロンプトで「waveinfo('meyr')」と入力することで、このウェーブレットの主な性質を調べることができます。

Meyer ウェーブレット

Meyer ウェーブレットとスケーリング関数は、周波数領域で定義されています。

  • ウェーブレット関数

    ψ^(ω)=(2π)1/2eiω/2sin(π2ν(32π|ω|1))   if   2π3|ω|4π3ψ^(ω)=(2π)1/2eiω/2cos(π2ν(34π|ω|1))   if   4π3|ω|8π3

    ψ^(ω)=0   if   |ω|[2π3,8π3]

    ここで ν(a)=a4(3584a+70a220a3)     a[0,1] です。

  • スケーリング関数

    ϕ^(ω)=(2π)1/2     if   |ω|2π3ϕ^(ω)=(2π)1/2cos(π2ν(32π|ω|1))     if   2π3|ω|4π3ϕ^(ω)=0     if  |ω|>4π3

補助関数を変更することで、異なるウェーブレットのファミリを取得できます。補助関数 ν に必要な性質など、詳細については、参考文献を参照してください。このウェーブレットは、確実に直交解析になります。

関数 ψ は有限サポートを持ちませんが、 のとき ψ はどの逆多項式よりも速く 0 へと減少します。

nΝ,Cn s. t. |ψ(x)|Cn(1+|x|2)n

この性質は導関数にも維持されます。

kN,nN,Ck,n s. t. |ψ(k)x|Ck,n(1+|x|2)n

このウェーブレットは無限回微分可能です。

メモ

Meyer ウェーブレットはコンパクト サポートを持ちませんが、適切な近似が存在し、DWT で使用できる FIR フィルターになります。この疑似ウェーブレットの主な性質を調べるには、MATLAB コマンド プロンプトで「waveinfo('dmey')」と入力します。

ガウス導関数ファミリ: gaus

このファミリは、ガウス関数 f(x)=Cpex2 を元にして、f の p 次導関数を求めることで構築します。

整数 p はこのファミリのパラメーターであり、前の式において、Cpf(p)2=1 となる値です。ここで、f (p) は f の p 次導関数です。

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('gaus')」と入力して調べることができます。

ガウス導関数ウェーブレット gaus8

Mexican Hat ウェーブレット: mexh

このウェーブレットは、ガウス確率密度関数の 2 階微分関数に比例します。このウェーブレットは、さらに大きいガウス導関数 (DOG) ウェーブレット ファミリの特殊なケースです。Ricker ウェーブレットとしても知られています。

このウェーブレットに関連付けられたスケーリング関数はありません。

このウェーブレットの主な性質を調べるには、MATLAB コマンド プロンプトで「waveinfo('mexh')」と入力します。

このウェーブレットは wavefun を使用して計算できます。

[psi,xval] = wavefun('mexh',10);
plot(xval,psi);
title('Mexican Hat Wavelet');

Morlet ウェーブレット: morl

このウェーブレットには実数値のバージョンと複素数値のバージョンの両方があります。実数値の Morlet ウェーブレットの性質を調べるには、MATLAB コマンド ラインで「waveinfo('morl')」と入力します。

実数値の Morlet ウェーブレットは次のように定義されます。

ψ(x)=Cex2cos(5x)

定数 C は、再構成を考慮した正規化に使用されます。

[psi,xval] = wavefun('morl',10);
plot(xval,psi);
title('Real-valued Morlet Wavelet');

厳密に言うと、Morlet ウェーブレットはアドミッシブル条件を満たしません。

その他の実数ウェーブレット

その他の実数ウェーブレットのいくつかがツールボックスで使用可能です。

複素数ウェーブレット

ツールボックスは、連続ウェーブレット解析用の複素数値のウェーブレットも多数提供します。複素数値のウェーブレットは位相情報を提供するので、非定常信号の時間-周波数解析で非常に重要です。

複素ガウス ウェーブレット: cgau

このファミリは、次の複素ガウス関数を元に構築されます。

f(x)=Cpeixex2 で、f の p 次導関数を求めます。整数 p はこのファミリのパラメーターであり、前の式において、Cp は次を満たす値です。

f(p)2=1 (ここで、f (p) は f の p 次導関数)。

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('cgau')」と入力して調べることができます。

複素ガウス ウェーブレット cgau8

複素 Morlet ウェーブレット: cmor

[Teo98] の 62 ~ 65 ページを参照してください。

複素 Morlet ウェーブレットは次のように定義されます。

ψ(x)=1πfbe2iπfcxex2fb

これは次の 2 つのパラメーターに依存します。

  • fb は帯域幅パラメーター

  • fc はウェーブレット中心周波数

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('cmor')」と入力して調べることができます。

複素 Morlet ウェーブレット morl 1.5-1

複素周波数 B スプライン ウェーブレット: fbsp

[Teo98] の 62 ~ 65 ページを参照してください。

複素周波数 B スプライン ウェーブレットは、次のように定義されます。

ψ(x)=fb(sinc(fbxm))me2iπfcx

これは次の 3 つのパラメーターに依存します。

  • m は整数の次数パラメーター (m ≥ 1)

  • fb は帯域幅パラメーター

  • fc はウェーブレット中心周波数

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('fbsp')」と入力して調べることができます。

複素周波数 B スプライン ウェーブレット fbsp 2-0.5-1

複素 Shannon ウェーブレット: shan

[Teo98] の 62 ~ 65 ページを参照してください。

このファミリは、周波数 B スプライン ウェーブレットで、m を 1 に設定することで得られます。

複素 Shannon ウェーブレットは次のように定義されます。

ψ(x)=fbsinc(fbx)e2iπfcx

これは次の 2 つのパラメーターに依存します。

  • fb は帯域幅パラメーター

  • fc はウェーブレット中心周波数

このファミリの主な性質については、MATLAB コマンド ラインから「waveinfo('shan')」と入力して調べることができます。

複素 Shannon ウェーブレット shan 0.5-1