LiftingWaveletTransform

LiftingWaveletTransform[data]

data の配列のリフティングウェーブレット変換(LWT)を与える.

LiftingWaveletTransform[data,wave]

ウェーブレット wave を使ったリフティングウェーブレット変換を与える.

LiftingWaveletTransform[data,wave,r]

r レベルの細分化を使ったリフティングウェーブレット変換を与える.

詳細とオプション

  • LiftingWaveletTransformDiscreteWaveletDataオブジェクトを与える.
  • DiscreteWaveletData dwd の特性は dwd["prop"]で見ることができ,使用可能な特性のリストは dwd["Properties"]で求めることができる.
  • 結果のウェーブレット係数は入力 data と同じ深さの配列である.
  • data は次のいずれでもよい.
  • list任意階数の数値配列
    image任意のImageオブジェクト
    audioAudioオブジェクトまたはサンプルされたSoundオブジェクト
  • 使用可能なウェーブレット wave
  • BiorthogonalSplineWavelet[]Bスプラインに基づいたウェーブレット
    CDFWavelet[]Cohen-Daubechies-Feauveau9/7ウェーブレット
    CoifletWavelet[]Daubechiesウェーブレットの対称性変種
    DaubechiesWavelet[]Daubechiesウェーブレット
    HaarWavelet[]古典的なHaarウェーブレット
    ReverseBiorthogonalSplineWavelet[]Bスプラインに基づいたウェーブレット( 逆双対ウェーブレットと主ウェーブレット)
    SymletWavelet[]最小非対称直交ウェーブレット
  • デフォルトの waveHaarWavelet[]である.
  • 細分化レベル r をより高くすると,スケールの大きい特徴が解決される.
  • 細分化レベル r では,LiftingWaveletTransformは内部的に data を事前充填し,各次元がの倍数になるようにする.事前充填に使われる充填の値はPaddingオプションの設定値によって決まる. »
  • 細分化レベルがFullのときの rTemplateBox[{{{InterpretationBox[{log, _, DocumentationBuild`Utils`Private`Parenth[2]}, Log2, AutoDelete -> True], (, n, )}, +, {1, /, 2}}}, Floor]で与えられる.
  • デフォルトの細分化レベル rで与えられる.ただし,data の長さを整数で因数分解したものである.多次元データについては,各次元について同じ計算が行われ,結果の最小細分化レベルが使われる. »
  • レベル のウェーブレット係数の木は粗い係数 と詳細化係数 からなっており, で 入力データ data が表される.
  • の次元は で与えられる.ただし,2^r TemplateBox[{{l, /, {2, ^, r}}}, Ceiling]で与えられ, は入力データ data の次元である. »
  • 使用可能なオプション
  • Method Automatic使用するメソッド
    Padding "Periodic"境界を越えてデータをどのように拡張するか
    WorkingPrecision MachinePrecision内部計算で使用する精度
  • Paddingの設定値には各次元におけるデータ集合の周期的な反復のための"Periodic"と一定の充填のための が含まれる.
  • Method->"IntegerLifting"の設定では,整数データは整数係数に変換される.この場合,タイプ"Real"の入力 image データはタイプ"Byte"に変換される.
  • InverseWaveletTransformは逆変換を与える.

例題

すべて開くすべて閉じる

  (3)

HaarWaveletを使ってリフティングウェーブレット変換を計算する:

Normalを使ってすべての係数を見る:

音声信号を変換する:

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

逆変換を計算する:

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

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

逆変換を計算する:

スコープ  (33)

基本的な用法  (7)

リフティングウェーブレット変換を計算する:

結果のDiscreteWaveletDataは変換係数の木を表す:

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

整数リフティングウェーブレット変換を計算する:

Normalを使ってすべての整数係数を見る:

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

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

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

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

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

Allを引数として使ってすべての係数を得ることもできる:

Automaticを使って逆変換に使われる係数だけを得る:

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

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

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

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

Automatic係数はデフォルトでWaveletListPlotのような関数で使われる:

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

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

さらに細分化を進めると,{0,0,0}はさらに要素に分解される:

ウェーブレット族  (8)

さまざまなウェーブレット族を使って離散ウェーブレット変換を計算する:

係数を比較する:

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

HaarWavelet(デフォルト):

DaubechiesWavelet

BiorthogonalSplineWavelet

CoifletWavelet

ReverseBiorthogonalSplineWavelet

SymletWavelet

LiftingFilterDataLiftingWaveletTransformへの入力として使う:

ベクトルデータ  (6)

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

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

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

マウスポインタが係数の上に置かれると,係数指標がツールチップとして現れる:

一定データ:

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

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

小さくないのは第1詳細化係数{1}のみである:

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

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

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

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

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

第1詳細化係数は振動している箇所を突き止める:

共通垂直軸上のすべての係数:

行列データ  (4)

二次元リフティングウェーブレット変換を計算する:

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

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

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

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

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

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

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

垂直詳細化係数,つまりウェーブレット指標{,1}のみが非零である:

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

水平詳細化係数,つまりウェーブレット指標{,2}のみが非零である:

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

対角詳細化係数,つまりウェーブレット指標{,3}のみが非零である:

配列データ  (2)

三次元リフティングウェーブレット変換を計算する:

すべての係数の木構造:

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

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

ウェーブレット係数を可視化する:

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

画像データ  (3)

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

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

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

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

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

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

WaveletImagePlotを使って逆変換に使われた係数を階層的格子レイアウトでプロットする:

サウンドデータ  (3)

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

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

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

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

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

MenuViewを使ってすべての係数をブラウズする:

一般化と拡張  (3)

LiftingWaveletTransformは記号による量の配列に使うことができる:

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

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

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

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

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

オプション  (6)

Method  (2)

デフォルトで,リフティングウェーブレット変換は整数を実数値にマップする:

Normalを使ってすべての係数を見る:

逆変換を行う:

Method->"IntegerLifting"とすると,整数が整数にマップされる:

すべての係数を表示する:

逆ウェーブレット変換を使って整数リフティングを反転させる:

Padding  (1)

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

"Periodic"充填を使ってデータを循環的に扱う:

データを0で充填して左側の境界効果を減ずる:

WorkingPrecision  (3)

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

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

ゼロに近い数では,桁数が正しい数字のよりよい指標として確度が使える:

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

アプリケーション  (1)

より高度な画像処理  (1)

画像を前処理して画像処理関数の性能を向上させる:

変換された画像係数をプロットする:

ウェーブレット変換された画像から垂直および対角の要素を抽出して再構築する:

0.5より小さい閾値画像の画素値:

垂直要素を強調してImageLinesを適用する:

特性と関係  (11)

LiftingWaveletTransformDiscreteWaveletTransformは密接に関係している:

離散ウェーブレット変換は充填のために余分な係数が必要な点を除いてLiftingWaveletTransformに似ている:

LiftingWaveletTransform係数は各細分化レベルで長さが半分になる:

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

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

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

デフォルトの細分化レベルはデータの長さの整数の因数分解で与えられる:

奇数長のデータは偶数にするために0で充填される:

より高次元:

指定された細分化レベル r では,長さの l の入力データがCeiling[l,2r]l として充填される:

4つの細分化レベルを持つ長さ10の入力データには充填の長さが与えられる:

ArrayPadを使って充填操作が行われる:

より高次元:

10行15列で3つの細分化レベルを持つデータについては,各次元で充填が行われる:

ウェーブレット係数の次元を計算する:

ウェーブレット係数の次元は で与えられる.ただし, は入力データ data の次元である:

次元を dwd における係数の次元と比較する:

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

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

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

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

各細分化レベルで正規化を補う:

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

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

その総和でもとのデータが与えられる:

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

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

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

画像は同じである:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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