HOME > テクニカルサポート > 製品 一覧 > Flex Pro > v7
ヒューリンクステクニカルサポート
Flex Pro に関する皆様からのご質問のうち、よくある質問を掲載しました。
大規模データを扱うプロフェッショナルのための統合データ解析ツール
FlexPro 7 日本語版サポート情報

フレックス・プロ HOMEPAGE


Last update  16/04/12

HOME > データ解析

連続ウェーブレット変換 (CWT)

連続ウェーブレット変換 (CWT) はシグナルを高度に時間に集中した小さな振動であるウェーブレットに分解します。 フーリエ変換 がシグナルを全ての時間ローカライゼーション情報を失くして無限長の正弦および余弦に分解するのに対し、CWT の基本機能は時間局在マザーウェーブレットのスケールされシフトされたバージョンです。 CWT は時間および周波数の優れた位置測定を提供するシグナルの時間-周波数表現を構築するために使用されます。

CWT は非定常シグナルの変動特性をマップするには優れたツールです。 CWT はまた、広い意味でシグナルが定常的かどうかを決定する望ましいツールです。 シグナルが定常的ではないと判定された場合、 CWT はデータの非定常部分を特定することができます。

FlexPro の CWT プロシージャの核となる計算は下記の参考文献セクションでリストされている Torrence と Compo アルゴリズムを一般にフォローします。 下記の式で使用されている命名法は Torrence と Compo の書で使用されているものをフォローします。

連続ウェーブレット変換

CWT の定義は以下の通りです。

CWT はマザーウェーブレットのスケールされ変換されたバージョンのマザーウェーブレット、 Y 関数を伴うデータシーケンスの畳み込みです。 この畳み込みは最初の式のように直接、あるいは2番目の式のように FFT ベースの高速畳み込みを介して実行されます。 CWT は離散データシリーズ x とその離散フーリエ変換を除く連続関数であることに注意してください。 これらの式で * は複素共役化を表し、 N はデータシリーズの長さ、 s はウェーブレットのスケール、 dt はサンプリング間隔、 n ローカライズされた時間インデックス、 w は角周波数を表します。 ウェーブレット関数が全てのスケールで単位エネルギーを含んでいるので、それぞれの式は正規化を含んでいます。

CWT では、使用されるスケールのそれぞれの値について、スケールされたウェーブレットとデータの連続するセグメントの間の相関が計算されます。 再構築が必要な場合を除いて、CWT では幾つスケールが使用されるかやスケール間のスペーシングといった拘束はありません。 CWT スペクトルは要求されるいかなる密度の線形もしくは対数スケールも使用できます。 必要なら、周波数のナローレンジのための高分解能スペクトルを生成することが可能です。 畳み込みはそれぞれのスケールにおいて最大 N 回可能で、FFT を使用するのであれば N 回実行されなければなりません。 CWT 使用されるそれぞれのスケール、逆 FFT を要求するもののそれぞれでの N スペクトル値から成ります。 CWT の計算負荷や目盛り要求は相当なものです。 CWT でのこの過剰に高い計算から得られる利益は、正確な時間-周波数スペクトルです。

ウェーブレット基底関数 (マザーウェーブレット)

複素数指数関数 (正弦や余弦) ベースの関数を使用するフーリエ分解と異なり、ウェーブレット分解は時間ローカライゼーション振動関数もしくはマザーウェーブレットを使用します。 マザーウェーブレットは時間と周波数両方を包含し、それが構築されたスケールされ翻訳された既定関数のソース関数として提供されます。 マザーウェーブレットは複素数または実数で、通常ローカライズされた振動の特性を統制する調整可能なパラメータを内包します。 ウェーブレット解析は、基底関数が構築されるマザーウェーブレットを指定できるので、フーリエ解析より複雑です。 FlexPro はそれぞれ複素数、実数バージョンで3つの異なるマザーウェーブレットを提供します。

Morlet ウェーブレット

最も一般によく使用されている CWT ウェーブレットである Gaussian ウィンドウの複素数シヌソイドである Morlet ウェーブレットは時間および周波数領域で以下のように定義されます。

上の式で、 h は非次元時間パラメータ、 m はウェーブ数、 H は Heaviside 関数です。

時間領域プロットでは、調整可能パラメータ m (ウェーブ数) 6 の Morlet ウェーブレット実数および複素数成分は以下のように表示されます。

Morlet ウェーブレットの調整可能なパラメータ、ウェーブ数は FlexPro では 6 から 100 までの間で指定できます。 調整可能パラメータ 20 の Morlet ウェーブレットは非常に異なった時間領域表示となります。

Morlet ウェーブレットの振動数はほぼウェーブ数と近似となります。

Paul ウェーブレット

FlexPro は Paul ウェーブレットも提供します。

Paul ウェーブレットは (階乗関数の平方根として) さらに素早く減衰します。 Paul ウェーブレットの調整可能なパラメータは FlexPro では 4 から 40 の範囲で変動する次数です。 次数 4 では、ウェーブレットには単一の振動のみ存在します。

サポートされる最大の次数 40 でも Paul ウェーブレットで明示される振動は Morlet の最小ウェーブ数と同じです。

Paul ウェーブレットはその素早い時間領域減衰のため Morlet より時間ローカライゼーションを提供します。 しかし、Morlet と異なりそのフーリエ表示は左右対称なピークではなくむしろ最も高い周波数の方にシフトしています。 それはほぼガンマピークの形をフォローし、次数があがるほど歪みが減少します。 Paul がサポートしている最大次数 40 でもその周波数領域ピークには明らかな歪みが存在します。 Paul ウェーブレットはそのため周波数分解能の点で劣ります。

Derivative of Gaussian ウェーブレット

サポートされている3つ目のマザーウェーブレットは GaussDeriv (Gaussian Derivative) です。 実数成分は以下のように定義されます。

複素数ウェーブレットは周波数領域でのヘビサイド関数の加算により生成されます。 このウェーブレットはガンマ関数の平方根とともに減衰します。 その時間ローカライゼーションは Morlet と Paul ウェーブレットの中間です。 GaussDeriv ウェーブレットの調整可能パラメータは 2 から 80 の間で変動する導関数の次数です。 もっとも低い次数 2 はMarr または Mexian Hat ウェーブレットとして知られています。 ウェーブレットでは単一の振動が存在します。

サポートされている最大次数 80 では、Gaussian Derivative ウェーブレットはウェーブ数 12 の Morlet と同数の振動カウントを持ちます。

周波数領域表示

マザーウェーブレット (Morlet ウェーブ数 6、Paul ウェーブレット次数 6、Gaussian Derivetive 次数 20) の周波数領域変換は以下の通りです。

3つのマザーウェーブレットそれぞれの調整可能パラメータをほぼ6つの振動を生成するように設定した場合、Gaussian Derivetive ウェーブレットはもっともコンパクトな周波数領域スペクトル情報を生成するように表示されます。 Paul ウェーブレットがもっともコンパクトではなく、Morlet がその中間です。

Morlet ウェーブレットのフーリエ変換は左右対称な周波数領域ピークを生成します。 GaussDeriv ウェーブレットの周波数領域表示はまさにガンマピーク形状です。 周波数ピークの右にシフトする歪みは Paul のものより目に見えて少なく、Derivative 次数 20 付近ではほとんど消えます(GaussDeriv ウェーブレットの Derivative を大きくするとほぼ Gaussian に近い周波数ピークを生成します)。

時間分解能 vs. 周波数分解能

3つ全てのウェーブレット基底は、振動が素早い減衰により効果的に時間でローカライズされるという意味でコンパクトにサポートされています。 それゆえ3つ全てのウェーブレットは非常に優れた時間ローカライゼーションを提供します。 ウェーブレットでの振動の与えられたカウントに関しては、Paul ウェーブレットが時間領域でもっとも効果的にローカライズし、Morlet が若干劣り、Gaussian Derivative ウェーブレットがこの中ではもっとも劣ります。 周波数領域では逆となります。 ウェーブレットでの明白な振動の与えられたカウントに関しては、Gaussian Derivative がもっとも優れた周波数ローカライゼーションを提供し、Morlet がやや劣り、Paul がこの中ではもっとも劣ります。

ウェーブレットでの振動の与えられたカウントでは Morlet ウェーブレットは Gaussian Derivative ほどはコンパクトではないですが、FlexProでサポートされている調整範囲でのより高次な振動のカウントを行う能力を持っています。 そのため、Morlet ウェーブレットを使ってより優れた周波数分解能を得ることが出来ます。

これは視覚的に明らかにできます。 下のウェーブレット解析は時間 0.5 から 0.6 の間に単一のシヌソイド振動が起こっているノイジーなデータセットを使用しています。

ウェーブレットピークはこの時間-周波数分解能トレードオフを証明するためにズームされています。 全てのプロットは同じ時間-周波数スケーリングを使用しています。 最初の3つのプロットはウェーブ数 6, 20, 50 のMorlet です。

 

次の3つは次数 4, 16, 40 のPaul です。

 

最後の3つは次数 2, 20, 80 の GaussDeriv です。

 

一般に、時間での可能な限り最良のローカライゼーションを必要としないのであれば、それが時間および周波数両方で非常に優れた分解能を提供するので、Morlet ウェーブレットで十分でしょう。 その周波数分解能は最低のウェーブ数でも相当なものです。

最高 (次数 40) の Paul ウェーブレットの周波数分解能は最小ウェーブ数 6 の Morlet とほぼ同じです。 それぞれの Paul でのサンプルで周波数での非対称性が見られます。 可能な限り最良の時間ローカライゼーションが必要な場合は Paul ウェーブレットは良い選択です。

最大の周波数分解能 (次数 80) での GaussDeriv ウェーブレットはウェーブ数 12 の Morlet とほぼ同じです。 Paul と異なり、高次数の GaussDeriv ウェーブレットは基本的に対称性を持ち、少ないウェーブ数での Morlet の周波数分解能を超えることが出来ます。

多分解能解析

ショートタイムフーリエ変換 では、固定幅セグメントサイズが時間-周波数分解能トレードオフをコントロールします。 これは与えられた周波数にかかわらず、時間での単一の分解能と周波数での単一の分解能に帰着します。 一方、ウェーブレット解析は多分解能の手法です。 時間-周波数分解能は一定ではなく、周波数により変動します。 多分解能解析は、シグナル内の短い持続時間に高い周波数成分が存在する場合と低い周波数成分が永続する共通のコンディションのために設計されています。

短時間の高周波数成分は強力な時間ローカライゼーションを必要とします。 これを満たすため、高周波数成分の周波数分解能は縮小されます。 他方、長時間の低周波数成分は劣った時間ローカライゼーションを許容しますが、効果的な周波数分解能を要求します。 低周波数成分はしばしばシグナルの特性の大部分を決定し、その特性は周波数分解能が可能な限り良いほど正確に測定されます。

多分解能解析では、最適なセグメント幅を決定する困難な問題を避けることが出来ます。 時間セグメントの幅は周波数により自動的に変動します。 明白な欠点は、シグナルが短時間の低周波成分や長時間の高周波成分を持つことがある点です。 このようなシグナルではウェーブレット解析よりも ショートタイムフーリエ変換 の方がよりよい選択となるでしょう。 さらに、周波数分解能におけるこの変動性はウェーブレットスペクトルでのスペクトルのパワーや振幅を読み取ることを困難にします。 このような単一の分解能の解析の場合も ショートタイムフーリエ変換 の方が望ましいです。

以下のデータセットは 1% ホワイトノイズでの等しいパワーのシーケンシャルなシヌソイドを持ちます。 時間 0.01 から 0.04 では周波数 250 のシヌソイドが存在します。時間 0.06 から 0.09 では、周波数 500 のシヌソイドが、時間 0.11 から 0.14 では周波数 1000 のシヌソイドが、時間 0.16 から 0.19 では周波数 2000 のシヌソイドが存在します。

下の CWT スペクトルではウェーブ数 12 の Morlet ウェーブレットが使用されています。

多分解能解析がはっきりと視覚的に理解できます。 周波数 250 の成分は周波数では見事にローカライズされていますが時間は非常にファジーです。 逆に、周波数 2000 の成分は時間はよく定義されていますが周波数は非常にファジーです。

CWT スペクトルを最適化 STFT と対比します。 単一分解能での STFT は明白に違いがわかります。

ゼロパッディングと円錐上影響圏

CWT スペクトルはまずデータシリーズの離散フーリエ変換を取るところから計算されます。 次にスペクトルのそれぞれのスケール (指定された周波数) 、子ウェーブレットの周波数応答が計算され、それがデータの周波数変換により掛け算され、産物の逆数が得られます。

フーリエ変換は周期的なデータと仮定されます。 データと応答関数 (子ウェーブレット) 両方の非周期性の結果として起こる FFT 高速畳み込みのラップアラウンド効果を削減するために、子ウェーブレットの周波数応答の非ゼロ成分の半分の長さと同じゼロパッディングが要求されます。 この長さはスケール (周波数) の作用として変動します。 データサイズの2倍のゼロパッディングはスペクトルにどこにもラップアラウンド効果が起きない事を保障します。 ゼロパッドは次に大きい 2 の累乗の数になり得、検出されるラップアラウンドはごく僅かで、高速な FFT パフォーマンスを得ることが出来ます。

十分なゼロパッディングが使用されると、ラップアラウンド効果は排除されますが別の問題が起こります。 ゼロパッディングにより、データの終わりに不連続性が持ち込まれます。 さらに、パワーはゼロが畳み込みに持ち込まれることによりスペクトルの端付近で縮小されます。

周辺効果のこのゾーンは円錐状影響圏として知られています。 FlexPro では影響圏のスペクトル情報は表示されません。 円錐状影響圏のスペクトル情報はゼロパッディングの使用の如何にかかわらず正確ではありません。 使用されない場合、低周波数でラップアラウンドが発生します。 使用された場合、スペクトルのパワーは縮小します。

円錐状影響圏は、Torrnce と Compo の文献にあるように、e-folding distances を使用して計算されます。

直交ウェーブレットと DWT

ほとんどのウェーブレット解析はシグナルのハイパスとローパス成分を分離するために一対のフィルタを使用します。 これは離散ウェーブレット変換 (DWT) として知られています。 DWT ウェーブレットは時間の連続関数ではなく、その変換は周波数の連続関数ではありません。 むしろそれらはデータのフィルタリングや再構築をシンプルにする直交基底を一般に生成する時間領域フィルタ係数のセットです。 DWT は冗長ではありません。 それぞれのスケールでのウェーブレットのパワーのブロック数はオーバーラップなしのウェーブレット幅の作用です。 一般的な DWT では、周波数は2の累乗を単位に間隔が取られ、時間のブロックのカウントはそれらの固定周波数の上昇に伴い2の累乗を単位に上昇します。DWT は高速でシグナルの時間-周波数表示にさほど多くのメモリを要求しませんが、時間-周波数スペクトル解析には実践的ではありません。

FlexPro は時間-周波数解析にもっぱら CWT を使用します。 CWT アルゴリズムはより優れた正確性を提供しますが計算負荷とメモリ使用量も非常に重くなります。

参考文献

  • ウェーブレットに関する情報は http://www.amara.com/current/wavelet.html を参照下さい。
  • 実世界のデータにウェーブレット解析を適用する繊細さを理解したい方には、徹底的で身近な方法で CWT をカバーした良書があります。
    • Christopher Torrence and Gilbert Compo, "A Practical Guide to Wavelet Analysis", Bulletin of the American Meteorological Society, v.79, no.1, p.61-78. January 1998
  • この文献では、エルニーニョ時系列データを解析する文脈で CWT を説明しています。 この著者は FORTRAN のパブリックドメインの CWT ウェーブレット解析パッケージ WAVEPACK を発表しています。 FlexPro のリリース時点ではそれぞれの文献と WAVEPACK のコードは http://paos.colorado.edu/research/wavelets/ で見ることが出来ました。

前のページに戻る