DiscreteWaveletPacketTransform

DiscreteWaveletPacketTransform[data]

配列 data の離散ウェーブレットパケット変換(DWPT)を与える.

DiscreteWaveletPacketTransform[data,wave]

ウェーブレット wave を使って離散ウェーブレットパケット変換を与える.

DiscreteWaveletPacketTransform[data,wave,r]

r レベルの細分化を使って離散ウェーブレットパケット変換を与える.

詳細とオプション

  • DiscreteWaveletPacketTransformDiscreteWaveletDataオブジェクトを与える.
  • DiscreteWaveletData dwd の特性は dwd["prop"]で求まる.使用可能な特性のリストは dwd["Properties"]で求まる.
  • DiscreteWaveletPacketTransformは,ウェーブレットの完全木が計算されたDiscreteWaveletTransformを一般化したものである.
  • data は任意の深さの矩形配列である.
  • data は次のいずれでもよい.
  • list任意階数の数値配列
    image任意のImageオブジェクト
    audioAudioオブジェクトまたはサンプルされたSoundオブジェクト
  • 使用可能なウェーブレット wave
  • BattleLemarieWavelet[]Bスプラインに基づいたBattleLemariéウェーブレット
    BiorthogonalSplineWavelet[]Bスプラインに基づいたウェーブレット
    CoifletWavelet[]Daubechiesウェーブレットの対称性変種
    DaubechiesWavelet[]Daubechiesウェーブレット
    HaarWavelet[]古典的なHaarウェーブレット
    MeyerWavelet[]周波数領域で定義されるウェーブレット
    ReverseBiorthogonalSplineWavelet[]Bスプラインに基づいたウェーブレット( 逆双対ウェーブレットと主ウェーブレット)
    ShannonWavelet[]シンク関数に基づいたウェーブレット
    SymletWavelet[]最小非対称直交ウェーブレット
  • デフォルトの waveHaarWavelet[]である.
  • 細分化レベル r の設定値を高くすると,スケールの大きい特徴が解決される.
  • デフォルトの細分化レベル rmin(TemplateBox[{{{InterpretationBox[{log, _, DocumentationBuild`Utils`Private`Parenth[2]}, Log2, AutoDelete -> True], (, n, )}, +, {1, /, 2}}}, Floor],4)で与えられる.ただし,data の最小次元である.
  • 細分化レベルが Fullのとき,rTemplateBox[{{{InterpretationBox[{log, _, DocumentationBuild`Utils`Private`Parenth[2]}, Log2, AutoDelete -> True], (, n, )}, +, {1, /, 2}}}, Floor]で与えられる.
  • レベル のウェーブレット係数の木は,粗い係数 と詳細化係数 からなる. は入力 data を表す.
  • 前方変換は , , , で与えられる.
  • 逆変換は で与えられる.
  • はローパスフィルタ係数で, はハイパスフィルタ係数である.どちらも各ウェーブレット族で定義される.
  • の次元は wd_(j+1)=TemplateBox[{{{1, /, 2},  , {(, {{wd, _, j}, +, fl, -, 2}, )}}}, Ceiling] で与えられる.ただし, は入力 data の次元であり,fl は対応する wspec のフィルタ長である.
  • 使用可能なオプション
  • MethodAutomatic使用するメソッド
    Padding "Periodic"境界を越えてデータをどのように延長するか
    WorkingPrecision MachinePrecision内部計算で使用する精度
  • Paddingの設定値はArrayPadで使用できるものと同じである.
  • InverseWaveletTransformは逆変換を与える.
  • デフォルトで,InverseWaveletTransformは再構築に dwd["BasisIndex"]で表される係数を使う.WaveletBestBasisを使って最適化基底を計算し設定する.

例題

すべて開くすべて閉じる

  (3)

ウェーブレットパケット変換を計算する:

結果のDiscreteWaveletDataはウェーブレット係数の完全木を表す:

逆変換で入力を再構築する:

音声信号を変換する:

dwd[,"Audio"]を使って係数信号を取り出す:

逆変換を計算する:

Imageオブジェクトを変換する:

dwd[,"Image"]を使って係数画像を抽出する:

逆変換を計算する:

スコープ  (34)

基本的な用法  (5)

DiscreteWaveletDataオブジェクトから役に立つ特性を抽出することができる:

特性の完全リストを得る:

データと係数の次元を得る:

Normalを使ってすべてのウェーブレット係数を明示的に得る:

また,Allを引数として使ってすべての係数を得る:

Automaticを使って逆変換で使われる係数のみを得る:

"TreeView"または"IndexMap"を使ってどのウェーブレット係数が使えるかを見る:

特定の係数配列を抽出する:

ウェーブレット指標指定のリストに対応するいくつかのウェーブレット係数を抽出する:

ウェーブレット指標がパターンにマッチするすべての係数を抽出する:

WaveletBestBasisを使ってウェーブレットパケット係数の最適化基底を計算する:

全係数のブロック格子中の最良基底をハイライトする:

"BasisIndex"を使って最良基底を抽出する:

計算された最良基底はデフォルトでWaveletListPlotのような関数で使われる:

より高い細分化レベルを使って周波数分解機能を高める:

細分化レベルが低いと,信号エネルギーの多くの部分が{0,0}に残される:

より高い細分化レベルを使うと,{0,0}はさらに要素に分解される:

ウェーブレット族  (10)

いろいろなウェーブレット族を使ってウェーブレットパケット変換を計算する:

係数を比較する:

ウェーブレットのいろいろな族を使って異なる特徴を捉える:

HaarWavelet(デフォルト):

DaubechiesWavelet

BattleLemarieWavelet

BiorthogonalSplineWavelet

CoifletWavelet

MeyerWavelet

ReverseBiorthogonalSplineWavelet

ShannonWavelet

SymletWavelet

ベクトルデータ  (6)

WaveletListPlotを使って,係数を共通の水平軸上でプロットする:

共通の垂直軸に対してプロットする:

WaveletScalogramを使って係数を時間と細分化レベルの関数として可視化する:

マウスポインタが係数上に来ると係数指標がツールチップとして表示される:

データの最高の木としての表現のWaveletScalogram

定数データ:

係数は粗い係数{0,0,}を除いてすべて小さい:

分解可能な最高の周波数(ナイキスト(Nyquist)周波数)で振動するデータ:

小さくないのは最初の詳細化係数{1}とその粗い子係数{1,0,0,}のみである:

大きい不連続箇所のあるデータ:

粗い係数{0,}はデータと同じ大きいスケールの構造を持つ:

詳細化係数は不連続箇所に敏感である:

空間構造と周波数構造の両方を持つデータ:

粗い係数{0,} はデータの局所平均を辿る:

最初の詳細化係数{1}とその粗い子係数{1,0,}は振動を表す:

すべての係数を共通の垂直軸に対してプロットする:

行列データ  (5)

二次元ウェーブレットパケット変換を計算する:

ウェーブレット係数の木構造を見る:

逆変換をするともとの信号に戻る:

WaveletMatrixPlotを使ってさまざまなウェーブレット係数を可視化する:

最高の木表現のWaveletMatrixPlot

二次元では,各方向のフィルタリング操作のベクトルが計算できる:

これらのベクトルを二進数展開として解釈するとウェーブレット指標の数が得られる:

Haarウェーブレットのローパスフィルタとハイパスフィルタを得る:

結果の2Dフィルタは2方向のフィルタの外積である:

ステップデータのウェーブレット変換:

垂直に不連続性を有するデータ:

すべての水平および対角の詳細化係数,つまりウェーブレット指標{___,2|3,___}は0である:

水平に不連続性を有するデータ:

すべての垂直および対角上の詳細化係数,つまりウェーブレット指標 {___,1|3,___}は0である:

対角に不連続性を有するデータ:

すべての水平および垂直の詳細化係数,つまりウェーブレット指標{___,1|2,___}は0である:

配列データ  (2)

三次元ウェーブレットパケット変換を計算する:

すべての係数のブロック格子ビュー:

三次元クロス配列のウェーブレット変換:

ローパスウェーブレット係数{___,0}を可視化する:

もとのデータのエネルギーは変換された係数内に保存されている:

画像データ  (3)

Imageオブジェクトを変換する:

逆変換するとImageオブジェクトが再構築される:

ウェーブレット係数は通常各画像チャンネルのデータのリストとして与えられる:

代りにすべての係数をImageオブジェクトとして得る:

カラーレベルの再スケールを施していない生のImageオブジェクトを得る:

{0,1}係数の逆変換をImageオブジェクトとして行う:

画像データのパケット変換から係数の最高の木を計算する:

WaveletImagePlotを使って階層的な格子で最高の木をプロットする:

サウンドデータ  (3)

Soundオブジェクトを変換する:

逆変換するとSoundオブジェクトが再構築される:

デフォルトで,係数は各サウンドチャンネルのデータのリストとして与えられる:

{0,1}係数をSoundオブジェクトとして得る:

Sound オブジェクトとしての{1,1} 係数の逆変換:

サウンドデータのパケット変換から係数の最高の木を計算する:

MenuViewを使って係数の最高の木をブラウズする:

一般化と拡張  (3)

DiscreteWaveletPacketTransformは記号的な量の配列に使うことができる:

逆変換で入力が厳密に復元される:

任意の内部作業精度を指定する:

複素数値のデータを使う:

ウェーブレット係数が複素数になる:

オプション  (5)

Padding  (2)

Paddingの設定値は"Periodic"を含みArrayPadのメソッドのものと同じである:

"Reversed"

"ReversedNegation"

"Reflected"

"ReflectedDifferences"

"ReversedDifferences"

"Extrapolated"

充填で境界効果を除くことができる:

デフォルトの"Periodic"充填を使う:

"Extrapolated"充填を使うと非周期的なデータでは境界効果が薄くなる:

WorkingPrecision  (3)

デフォルトで,WorkingPrecision->MachinePrecisionが使われる:

より精度の高い計算を使う:

ゼロに近い数では,確度が正しい桁数のよりよい指標になる:

WorkingPrecision->を使って厳密計算を行う:

アプリケーション  (3)

最高の木の分析  (2)

デフォルトの再構築木には最高の細分化レベルの係数が含まれる:

エネルギーが少ない数の係数に集中している再構築木を選ぶ:

共通の垂直軸に対して係数の最高の木をプロットする:

画像データについてのデフォルトの再構築木係数を可視化する:

係数が最小の総対数エネルギーを持つ再構築木を計算する:

圧縮  (1)

行列データの可逆圧縮:

最高の木のウェーブレットパケット変換では多くの係数が0である:

圧縮サイズの尺度として非零の係数を数える:

もとのデータの非零の値:

データの長さ:

特性と関係  (11)

DiscreteWaveletPacketTransformはウェーブレット係数の完全木を計算する:

DiscreteWaveletTransformは係数の完全木のサブセットを計算する:

DiscreteWaveletPacketTransform係数は各細分化のレベルで長さを半分にする:

回転されたデータは異なる係数を与える:

StationaryWaveletPacketTransform係数はもとのデータと同じ長さである:

回転されたデータは回転された係数を与える:

多次元離散ウェーブレット変換は一次元パケット変換と関連している:

Haarウェーブレット(デフォルト)でデータ長の場合,計算される係数は等しい:

デフォルトの細分化はMin[Round[Log2[Min[Dimensions[data]]]],4]で与えられる:

より高次元:

直交ウェーブレット族ではエネルギーノルムが保存される:

双直交ウェーブレット族では,エネルギーノルムは近似的に」保存される:

データの平均は変換の最高の細分化レベルで捉えられる:

最高の細分化レベルで係数を抽出する:

各細分化レベルで正規化を相殺する:

個々の係数配列からの逆変換の総和はもとのデータを与える:

各ウェーブレット係数配列を個別に逆変換する:

総和はもとのデータを与える:

HaarWaveletは平均すること(ローパスフィルタ)と差分を取ること(ハイパスフィルタ)に相当する:

ウェーブレット係数{0}{1}を計算する:

DiscreteWaveletPacketTransformと比較する:

二次元では,各次元に別々のフィルタが適用される:

Haarウェーブレットのローパスフィルタとハイパスフィルタ:

行列データのHaarウェーブレット変換:

HaarWaveletを使ってDiscreteWaveletPacketTransformと比較する:

画像チャンネルは個別に変換される:

別々に変換された画像チャンネルの{0}係数を組み合せる:

もと画像のDiscreteWaveletPacketTransform{0}係数と比較する:

画像は等しい:

考えられる問題  (1)

充填はウェーブレット係数の総エネルギーに影響することがある:

エネルギーは保存されない:

0で充填して係数でのエネルギー保存を確実にする:

Wolfram Research (2010), DiscreteWaveletPacketTransform, Wolfram言語関数, https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html (2017年に更新).

テキスト

Wolfram Research (2010), DiscreteWaveletPacketTransform, Wolfram言語関数, https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html (2017年に更新).

CMS

Wolfram Language. 2010. "DiscreteWaveletPacketTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html.

APA

Wolfram Language. (2010). DiscreteWaveletPacketTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html

BibTeX

@misc{reference.wolfram_2024_discretewaveletpackettransform, author="Wolfram Research", title="{DiscreteWaveletPacketTransform}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_discretewaveletpackettransform, organization={Wolfram Research}, title={DiscreteWaveletPacketTransform}, year={2017}, url={https://reference.wolfram.com/language/ref/DiscreteWaveletPacketTransform.html}, note=[Accessed: 22-November-2024 ]}