ウェーブレット変換はどの時間周波数係数を計算しますか?


26

高速フーリエ変換かかりしながら、動作を高速ウェーブレット変換をとるONを。しかし、具体的には、FWTは何を計算しますか?O(NlogN)O(N)

それらはしばしば比較されますが、FFTとFWTはリンゴとオレンジのようです。私が理解しているように、STFT(経時的な小さなチャンクのFFT)と複雑なMorlet WTを比較する方が適切です。なぜなら、それらは両方とも複雑な正弦波に基づいた時間周波数表現であるからです)。多くの場合、これは次のような図で示されます。

FFTとWTの係数が時間周波数平面にどのように対応するかを示すグリッド

別の例

左は、時間が経過するにつれてSTFTが積み重ねられた一連のFFTである様子を示しています(この表現はスペクトログラムの原点です)。右は、ダイアディックWTを示しています。低周波数での解像度(この表現はスカログラムと呼ばれます)。この例では、STFTのは垂直列の数(6)であり、単一のON log N FFT演算は、N個のサンプルからN 個の係数の単一の行を計算します。合計は、それぞれ6ポイントの8 FFT、または時間領域で48サンプルです。NO(NlogN)NN

わからないこと:

  • 単一の FWT操作で計算される係数の数と、上記の時間周波数チャートのどこに位置していますか O(N)

  • 単一の計算で塗りつぶされる長方形はどれですか?

  • 両方を使用して時間周波数係数の等面積ブロックを計算すると、同じ量のデータが出力されますか?

  • FWTはFFTよりも効率的ですか?

PyWaveletsを使用した具体例:

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

4つの係数のセットを2つ作成するため、元の信号のサンプル数と同じです。しかし、これらの8つの係数とダイアグラム内のタイルとの関係はどうでしょうか?

更新:

実際、私はおそらくこれを間違っwavedec()ていたので、マルチレベルDWT分解を行うを使用する必要があります。

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
これらのウェーブレット分解がどのように機能するかをよりよく理解するために、1つの有用なツールは実際の信号でそれを行うことができるでしょう:例えばオーディオ信号(私はここでこの方向に質問がありますdsp.stackexchange.com/質問/ 12694 / stft-and-dwt-
wavelets

@endolithあなたの質問はまだリクエストされていますか?もしそうなら、他のヒントを追加することができます
ローランデュバル

@LaurentDuvalはい、まだ開いていて、まだわかりません。CWTはMorletのようなものを使用し、DWTはHaarまたはDaubechiesのようなもののみを使用するため、混乱する可能性があります。高速なFWTがHaar だけなのか、他のタイプのウェーブレットも使用できるのかはわかりません。
エンドリス

2
@ndolithこれに対するコメント:連続CWTは、信じられないほどの潜在的なウェーブレット形状を認めます。それらは、「ハイゼンベルグ」の不等式を尊重するサンプリングパターン(時間またはスケール)でのみ正確に離散化できます。これらのパターンは、ウェーブレットに依存します。ほとんどの場合、パターンは冗長な離散化CWTを作成します。ダイアディックスケールの非冗長性が必要な人もいます。それを許可するウェーブレットはごくわずかです。その後、ウェーブレットサポートを有限にすると、Haarは1つになり、「自然なウェーブレット」を取得することはほとんど不可能です。Daubechiesのウェーブレットが作成された理由
ローランデュバル

回答:


13

FWTはFTではなく、STFTの「いとこ」であると考えられることは正しいです。実際、FWT / DFTはフーリエ変換の離散サンプリングであるため、FWTは単なるCWT(連続ウェーブレット変換)の離散サンプリングです。これは微妙な点のように思えるかもしれませんが、変換を離散化する方法を選択する際に重要です。

CWTとSTFTは、どちらも信号の冗長分析です。言い換えると、信号を完全に表現する必要があるよりも多くの「係数」(離散の場合)があります。ただし、フーリエ変換(または1つのスケールのみを使用したウェーブレット変換)は、信号を-infinityから+ infinityに積分します。これは、実世界の信号ではあまり有用ではないため、変換をより短い長さに切り捨てます(つまり、ウィンドウ)。信号のウィンドウ化は変換を変更します-時間/空間でウィンドウを乗算するため、変換空間では、ウィンドウの変換と信号の変換の畳み込みがあります。

STFTの場合、ウィンドウは常に(通常)同じ長さ(非ゼロ範囲)であり、周波数に依存しません(10 kHz信号と同じ幅の10 Hz信号をウィンドウします)。したがって、描画したような長方形のグリッドスペクトログラムが得られます。

CWTには、スケールが小さくなると(高周波数のように)ウェーブレットが(時間または空間で)短くなるという事実により、このウィンドウが組み込まれています。したがって、周波数が高くなると、有効ウィンドウの持続時間は短くなり、FWTに描画したものに似たスケールグラムになります。

CWTをどのように離散化するかはあなた次第ですが、信号を完全に表すためにシフトとスケールの両方で最小サンプリングがあると思います。通常(少なくとも私がそれらをどのように使用したか)、最低スケール(最高周波数)で、すべてのシフト位置(時間/スペース)でサンプリングします。スケールが高くなる(周波数が低くなる)につれて、サンプリングの頻度を減らすことができます。理論的根拠は、低音域がそれほど急激に変化しないことです(シンバルクラッシュ対ベースギターを考える-シンバルクラッシュはトランジェントが非常に短いのに対し、ベースギターは変化に時間がかかります)。実際、最短のスケール(すべてのシフト位置でサンプリングすると仮定)では、信号の完全な表現が得られます(このスケールの係数のみを使用して信号を再構築できます)。スケールのサンプリングの理論的根拠についてはよくわかりません。私' これは対数的であると示唆されており、より短いスケールの間の間隔が狭いと思います。これは、より長いスケールのウェーブレットがより広いフーリエ変換を持っているためだと思います(したがって、より多くの周波数を「拾い上げる」)。

FWTを完全に理解していないことは認めます。私の考えでは、実際にはシフト/スケールでの最小サンプリングであり、冗長な表現ではありません。しかし、その後、不要なアーティファクトを導入することなく、短時間で信号を分析する(そして混乱させる)能力を失うと思います。私はそれについてさらに読み、もし何か有用なことを学んだら、報告してください。うまくいけば、他の人がコメントしたいと思います。


1
「実際にはシフト/スケールでの最小サンプリングであり、冗長な表現ではありません。」あ!私はあなたが正しいと思います、そしてこれはそれがFFTと常に比較される理由を説明します。
エンドリス

3
FWTは、CWTの重要なサンプリングです。私はまだそれをよりよく理解しようとしていますが、STFTとCWTは両方ともフレームであることを学びました。フレーム理論は私を超えていますが、興味深い概念の1つは、STFTのdw * dt> C(dwは周波数分解能、dtは時間分解能)という不確実性の式です。言い換えれば、周波数をより良く解決しようとすると、時間分解能が失われます。CWTにはこの制限はありません。私は読み続け、頭の中でそれを明確にしたら上記の答えを明確にします。

1
私が理解していることから、CWTにも同じ制限がありますが、より良いトレードオフを使用します。
エンドリス

1
「STFTは両方とも信号の冗長分析です」。私はそれが本当だとは思わない。100ポイントの信号がある場合、10ポイントのチャンクに分割し、それぞれに対して10ポイントのFFTを実行すると、同じ量のサンプルに同じ情報が保存されます。
エンドリス

11

Haarウェーブレットの場合を考えてみましょう。高速ウェーブレット変換は、再帰的に信号を細分化し、そのたびに2つの半分の合計と差を計算します。差は現在のウェーブレットの変換の大きさであり、呼び出し元が和を返し、半分の周波数の拡張ウェーブレットの変換の大きさを計算します。したがって、FWTは、与えられた図で説明されているパターンを使用して時間周波数平面をカバーします。

あなたが与えた図は少し誤解を招くことに注意してください。彼らがあなたに伝えようとしているのは、最低周波数で1つのサンプル、その周波数の2倍で2つのサンプル、その周波数の4倍で4つのサンプルなどを取得するということです。各ウェーブレットの時間周波数特性は、タイルを覆うほどのものではありません。実際には、各ウェーブレットはコンパクトなサポートを備えているため、周波数の点で完全に非局在化する必要があるため、無限の領域をカバーします。そのため、これらのタイルの中心について考える必要があります。

さらに、FWTでは、CWTの連続ウェーブレットよりもはるかに制限的な許容基準を順守する必要がある離散ウェーブレットが必要です。その結果、離散ウェーブレットの時間周波数特性は一般にひどく(たとえば、Daubechiesウェーブレットは鋭い特徴でいっぱいであるか、周波数が変化する)、時間周波数平面の有用性はFWTのコンテキストで大幅に低下します。ただし、連続ウェーブレットは、信号の時間周波数表現を計算するために使用されます。


はい、係数の局在化を理解しています。これはFFTと同じです。「必ず」と言うとき、どういう意味ですか?信号の最小/非冗長表現を取得しようとしている場合にのみ必要ですか?単に分析/視覚化しようとしている場合はどうなりますか?より具体的な例を質問に追加します。
エンドリス

1
許容基準を順守することにより、アイデンティティの解像度が存在すること、つまり、すべての信号がウェーブレット変換から回復できることが保証されます。従わない場合、その変換から信号を回復することはできません。その時点で、分析していることを正確に質問する必要があります(信号に含まれていた情報も反映しますか?!)。最小/非冗長表現を必要としない場合は、CWTからより緩い許容基準を使用できます(より「理想的な」ウェーブレットを定義できます)。

1
私の博士論文が本当に役に立つと思うと思います。私は...あなたのためにオンラインでそれを置くだろう

オンラインに入れましたか?:)
エンドリス

2
私は確信しました:flyingfrogblog.blogspot.com/2010/02/...

3

あなたの参照にはそれがあります:

小さな有限波またはウェーブレットの直交基底に基づく係数のシーケンス。

詳細については、DWTページをご覧ください。そこでは、Haarウェーブレット、Daubechiesウェーブレットなどが紹介されています。方法を指摘する

  • ウェーブレットには位置があります-(1,1、–1、–1)ウェーブレットは「左側」対「右側」に対応し、最後の2つのウェーブレットは左側または右側をサポートし、1つは翻訳です他の。
  • 正弦波には位置がなく、空間全体に広がりますが、位相はあります。2番目と3番目の波は、余弦波と正弦波のように位相が90°ずれていることに対応して、互いに平行移動します。 。

離散ウェーブレットの代わりに、連続ウェーブレットまたは複雑なウェーブレットについて知りたい場合は、ウェーブレットシリーズから始めます。

ウィキペディアを超えて、教科書とコースはあなたに良いかもしれません。


この答えがわかりません。私の質問に答えますか?何の左側と右側?これは時間周波数表現と何の関係がありますか?
エンドリス

「左側対右側」の説明は、DWTページの抜粋プレビューであり、そのページには、正弦波基底とHaarウェーブレット基底の相対的なメリットを説明する簡単な例が含まれていることを示しています。ウェーブレット変換の係数の性質について尋ねていました。あなたは直感を探しているように聞こえました。その例が(元のコンテキストで)役に立つと思うかもしれません。

はい、この質問を投稿する前にウィキペディアの記事を何度も読みました。あなたの答えが時間-周波数表現に関する私の質問と関係があるかどうか/私は知りません。存在する場合、ドットを接続できますか?n個のサンプルのFFTは、n個の係数を生成し、STFTスペクトログラムの単一の列を構成します。WTとスカログラムによって生成される係数間に対応する関係はありますか?もしそうなら、それは何ですか?右下のグラフのどのボックスがFWTを1回実行することで埋められますか?
エンドリス

1
ウェーブレットに関連するウィキペディアのページのほとんどすべてが現在間違っています。

3

O(N2)

O(N)O(Nlog(N))O()

一般的なウィンドウ化されたSTFT(連続形式)から開始します。ユニットの高さの無限ウィンドウにプラグインすると、特別なケースとしてフーリエ変換を回復します。これを離散化(およびDFTを取得)および高速化(およびFFTを取得)できます。

CWT(連続フォーム)から開始します。連続CWTは、信じられないほどの量の潜在的なウェーブレット形状を受け入れます。それらは、「ハイゼンベルグ」の不等式(単位表面あたり1つのサンプル)を尊重するサンプリングパターン(時間またはスケール)でのみ正確に離散化できます。これらのパターンは、ウェーブレットに依存します。ほとんどの場合、パターンは冗長な離散化CWTを作成し、ウェーブレットフレームを生成します。

ダイアディックスケール(DWT)を使用して、冗長性を求めない人もいました。非常に少数のウェーブレット(まだ無限数ですが、偶然見つけることはできません)のみがそれを許可します。最初のものには、Haar、Franklin、Meyerウェーブレットがありました。その後、ウェーブレットサポートを有限にするように強制すると、Haarは長い間唯一のものでした。「自然な連続ウェーブレット」から直交ウェーブレットを取得することはほとんど不可能であるため、Daubechiesのウェーブレットと、後にSymmletsおよびCoifletsが作成されました。これらの奇妙な形のウェーブレットには、Morletウェーブレットのような素晴らしく単純な公式はありません。

O(N)

実際、FWTはCWTの単なる離散サンプリングです

DFT(またはFWT)は、DFT / FFTと同様に正確です。他のほとんどの離散化CWT(任意のウェーブレットを使用)はほぼ同じです(十分な冗長性があれば、大きな害はありません)。

そう:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N)

次の写真は、Haarウェーブレットの連続バージョンがどのように表示されるかを示しています 連続Haarウェーブレット

直交する離散ウェーブレットにサンプリングできます: 離散クリティカルHaarウェーブレット

一部の離散ウェーブレット、特に長いもの(スプラインなど)は、FFTを使用して計算される場合があることに注意してください:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.