DiscreteWaveletData[{wind1coef1,…},wave,wtrans]
ウェーブレット指標 windi,ウェーブレット wave,ウェーブレット変換 wtrans に対応するウェーブレット係数 coefiを持つ離散ウェーブレットデータオブジェクトを与える.
DiscreteWaveletData[{wind1coef1,…},wave,wtrans,{d1,…}]
データ次元{d1,…}を仮定した離散ウェーブレットデータオブジェクトを与える.
DiscreteWaveletData
DiscreteWaveletData[{wind1coef1,…},wave,wtrans]
ウェーブレット指標 windi,ウェーブレット wave,ウェーブレット変換 wtrans に対応するウェーブレット係数 coefiを持つ離散ウェーブレットデータオブジェクトを与える.
DiscreteWaveletData[{wind1coef1,…},wave,wtrans,{d1,…}]
データ次元{d1,…}を仮定した離散ウェーブレットデータオブジェクトを与える.
詳細とオプション
- DiscreteWaveletData[{wind1->coef1,…},…]は常にDiscreteWaveletData[coefs,winds,…]という構造の最適化された標準形に変換される.
- 係数 coefiは任意の深さの配列,Image[…], Sound[…],SampledSoundList[…]オブジェクトのいずれでもでよい.
- ウェーブレット変換 wtrans で使われるオプションはDiscreteWaveletDataのオプションとしても使うことができる.
- 標準出力形式では,省略された wtrans,細分化の数,もとのデータの次元のみが出力される.
- Normal[DiscreteWaveletData[…]]は,ウェーブレット指標 windiと対応する係数配列 coefiの対応関係を示す規則のリスト{wind1->coef1,wind2->coef2,…}を与える.
- DiscreteWaveletDataはウェーブレット分解木を表す.各ノードはウェーブレット係数を持つ.木の各ノードにはウェーブレット係数へのアクセスに使える一意的なウェーブレット指標ベクトルがある.
- ウェーブレット指標 wind は整数のベクトルである.ベクトルの長さはウェーブレット分解木における細分化のレベルを表す.長さ
の指標ベクトルで,最初の
個の整数は親ノードを最後の整数は現行ノードと親ノードとの関係を示す. - 一次元データでは,指標 wind は0と1からなる.0はローパスフィルタリングを表し,1はハイパスフィルタリングを表す.
次元データの指標 wind は
から
までの整数からなる.各整数はデータの各次元に沿って実行された操作のベクトルを表す.厳密な対応関係はMapThread[Rule,{Range[0,2^n-1],Tuples[{lowpass,highpass},n]}]で与えられる.- ウェーブレット指標 wind を使ってDiscreteWaveletDataオブジェクト dwd からウェーブレット係数を抽出することができる.以下は使用可能な指定値である.
-
dwd[wind] wind に対応する係数を抽出する dwd[{wind1,wind2,…}] いくつかのウェーブレット係数配列を抽出する dwd[wpatt] wind がパターン wpatt にマッチする係数すべてを抽出する dwd[All] すべての係数を抽出する dwd[Automatic] 逆変換で使用される係数を抽出する - デフォルトで,係数は規則のリスト{wind1->coef1,wind2->coef2,…}として返される.
- dwd[…,{form1,form2,…}]を使って出力形が制御できる.使用可能な formiは以下の通りである.
-
"Rules" 規則 {wind1->…} "Values" 係数のみ "Inverse" 個々の係数の逆変換 "ListPlot" 1D係数の単純なリストプロット "MatrixPlot" 2D係数の単純な行列プロット "Image" 画像係数のための画像 "Sound" サウンド係数のためのサウンドオブジェクト "SampledSoundList" サウンド係数のためのサンプルサウンドオブジェクト - 全体的な特性はDiscreteWaveletData[…]["prop"]で得られる.
- DiscreteWaveletData[…]["Properties"]はDiscreteWaveletDataオブジェクトで使用可能な特性のリストを与える.
- 変換係数の関連特性
-
"BasisIndex" 逆変換に使用するウェーブレット指標 "Dimensions" ウェーブレット係数群の次元を与える "EnergyFraction" 係数群におけるエネルギーの割合 "Padding" データ変換に使用する充填 "Refinement" 実行する細分化レベルの数 "Transform" ウェーブレット変換のタイプ {"TreeView",pos} TreePlotにおけるのと同じように pos を使った分解の木のビュー "Wavelet" 使用するウェーブレット族 "WaveletIndex" すべてのウェーブレット指標 windiのリスト - 入力データ関連特性
-
"DataDimensions" もとのデータの次元 "DataChannels" データのチャンネル数 "DataWrapper" 再構築の後でデータに適用されるラッパー関数 - パケット変換に特有な特性
-
"BestBasisBlockView" 最良基底のブロック格子ビュー "BestBasisCostValues" 各ウェーブレット係数の費用値 "BestBasisCostTable" フォーマットされた費用値表 - WaveletThresholdから得られる dwd の特性
-
"ThresholdValues" 各ウェーブレット係数の閾値 
"ThresholdTable" フォーマットされた閾値 
- 使用可能なオプション
-
Method Automatic 使用するメソッド Padding "Periodic" データを境界を越えてどのように延長するか SampleRate Automatic サウンドデータに使用するサンプルレート WorkingPrecision MachinePrecision 内部計算で使用する精度 - Paddingの設定値はArrayPadで使用できるものに等しい.
例題
すべて開く すべて閉じる例 (3)
ウェーブレット変換からDiscreteWaveletDataを得る:
dwd = DiscreteWaveletTransform[Range[10]]DiscreteWaveletDataは変換係数の木を表す:
dwd["TreeView"]dwd["EnergyFraction"]DiscreteWaveletDataオブジェクトを他のウェーブレット関数で使う:
dwd = DiscreteWaveletTransform[DiamondMatrix[32], Automatic, 3]WaveletMatrixPlot[dwd]を使い,階層的な格子レイアウトウェーブレット係数の行列をプロットする:
WaveletMatrixPlot[dwd]静的ウェーブレット変換係数の逆ウェーブレット変換を計算する:
InverseWaveletTransform[DiscreteWaveletData[{{0, 1} -> {-1, 3, 0, 0}, {0} -> {0, 2, 2, 0}}, HaarWavelet[], StationaryWaveletTransform]]スコープ (25)
基本的な用法 (8)
DiscreteWaveletTransformのようなウェーブレット変換からDiscreteWaveletDataを得る:
dwd = DiscreteWaveletTransform[{1, 2, 3, 4}]dwd["TreeView"]Normal[dwd]InverseWaveletTransformはDiscreteWaveletDataに対して使うことができる:
dwd = StationaryWaveletTransform[{1, 2, 3, 4}, HaarWavelet[]]HaarWavelet[]のような直交ウェーブレットには逆変換は厳密値である:
InverseWaveletTransform[dwd]dwd = StationaryWaveletTransform[{1, 1, 3, 1}]dwd[{{0}, {1}}]{0,_}という形式のウェーブレット指標に対応する全係数を抽出する:
dwd[{0, _}]dwd[{0, _}, "Values"]dwd[{0, _}, "ListPlot"]dwd = DiscreteWaveletTransform[RandomReal[1, 12], DaubechiesWavelet[]]{dwd["Transform"], dwd["Refinement"], dwd["Wavelet"]}dwd["Dimensions"]dwd["Properties"]DiscreteWaveletDataを他のウェーブレット関数で使う:
data = Table[Sin[x + x^2], {x, 0, 10, 0.1}];dwd = DiscreteWaveletTransform[data]InverseWaveletTransform[dwd]//ListLinePlot{WaveletListPlot[dwd], WaveletScalogram[dwd]}ウェーブレット関数を使ってDiscreteWaveletDataを変換する:
data = Table[Sin[20Log[x]], {x, 1, 10, 0.1}];dwd1 = DiscreteWaveletTransform[data, Automatic, 3]dwd2 = WaveletThreshold[dwd1]dwd3 = WaveletMapIndexed[c Rescale[c], dwd1]Table[WaveletListPlot[dwd, PlotLayout -> "CommonYAxis", PlotRange -> 2], {dwd, {dwd1, dwd2, dwd3}}]係数配列を与える規則のリストからDiscreteWaveletDataを構築する:
dwd = DiscreteWaveletData[{{0, 0} -> {-1}, {1, 0} -> {6}}]dwd["TreeView"]Normal[dwd]指定のウェーブレットと前方変換を使ってDiscreteWaveletDataを構築する:
dwd = DiscreteWaveletData[{{1} -> {2, 0, 0, 0, -3}, {0, 0, 1} -> {4, -2, 5}}, SymletWavelet[2], DiscreteWaveletTransform]InverseWaveletTransform[dwd]係数を得る (7)
dwd = DiscreteWaveletPacketTransform[{1, 3, 0, 0}]dwd["WaveletIndex"]dwd["TreeView"]DiscreteWaveletDataから係数配列を抽出する異なるウェーブレット指標指定:
dwd = DiscreteWaveletPacketTransform[{1, 3, 0, 0}]dwd[{1}]dwd[{{0}, {1}}]dwd[{_, 1}]dwd[{{1}, {_, Except[1]}}]dwd[Automatic]dwd[All]dwd = DiscreteWaveletTransform[RandomReal[1, 6]]dwd[{{0}, {1}}, "Rules"]dwd[{{0}, {1}}, "Values"]dwd[{{0}, {1}}, "ListPlot"]dwd[{{0}, {1}}, "Inverse"]dwd[{{0}, {1}}, {"Rules", "Inverse", "ListPlot"}]dwd = DiscreteWaveletTransform[CrossMatrix[3]]dwd[{{0}, {1}, {2}}, "MatrixPlot"]dwd[{{0}, {1}, {2}}, {"Inverse", "MatrixPlot"}]画像ウェーブレット係数をデフォルトでImageAdjustが適用されたImageオブジェクトとして得る:
dwd = DiscreteWaveletTransform[[image]]dwd[{_}, "Image"]dwd[{_}, {"Image", "ImageFunction" -> Identity}]デフォルトで,画像ウェーブレット係数は各カラーチャンネルの画素値の配列として与えられる:
ArrayQ[dwd[{0}, "Values"], _, NumberQ]Dimensions[dwd[{0}, "Values"]]音声ウェーブレット係数をAudioオブジェクトとして得る:
dwd = DiscreteWaveletTransform[Audio["ExampleData/rule30.wav"]]dwd[{1}, "Audio"]個々の係数のAudioオブジェクトとしての逆変換:
dwd[{0, 0, 0, 0, 0}, {"Audio", "Inverse"}]サウンドウェーブレット係数をSoundオブジェクトとして得る:
dwd = DiscreteWaveletTransform[ExampleData[{"Sound", "Tuba"}]]dwd[{1}, "Sound"]Soundオブジェクトとしての個々の係数の逆変換:
dwd[{1}, {"Sound", "Inverse"}]係数を設定する (6)
List入力のためにDiscreteWaveletDataを構築する:
dwd = LiftingWaveletTransform[Range[8], DaubechiesWavelet[3]]wrules = dwd[All]List係数には,タイプが{wind1->coef1,…}の規則 wrules のリストを入力する:
newdwd = DiscreteWaveletData[wrules, DaubechiesWavelet[3]]InverseWaveletTransform[newdwd]Image入力:
dwd = LiftingWaveletTransform[[image], CDFWavelet[], 3]irules = dwd[All, {"Image", "ImageFunction" -> Identity}]Image係数には,タイプ{wind1->icoef1,…}の規則 irules のリストを入力する:
newdwd = DiscreteWaveletData[irules, CDFWavelet[]]InverseWaveletTransform[newdwd]Sound入力:
snd = Sound[SampledSoundList[Table[Sin[1000 t], {t, 0, 1, 1. / 255}], 250]]dwd = LiftingWaveletTransform[snd, SymletWavelet[2], 2]srules = dwd[All, "Sound"];Sound係数には,タイプ{wind1->scoef1,…}の規則 srules のリストを入力する:
newdwd = DiscreteWaveletData[srules, SymletWavelet[2], SampleRate -> 250]InverseWaveletTransform[newdwd]デフォルトで,パラメータウェーブレット変換 wtrans は自動的に計算される:
DiscreteWaveletData[{{0} -> Range[10], {1} -> Range[10]}]ListLinePlot[InverseWaveletTransform[%]]DiscreteWaveletData[{{0} -> Range[10], {1} -> Range[10]}, Automatic, LiftingWaveletTransform]ListLinePlot[InverseWaveletTransform[%]]デフォルトで,データの次元 {d1,…}は自動的に計算される:
dwd = DiscreteWaveletTransform[Range[8]]DiscreteWaveletData[Normal[dwd], Automatic, DiscreteWaveletTransform]DiscreteWaveletData[Normal[dwd], Automatic, DiscreteWaveletTransform, {8}]DiscreteWaveletData[{{1} -> [image], {3} -> [image], {2} -> [image], {0, 1} -> [image], {0, 3} -> [image], {0, 2} -> [image]}]ImageAdjust@InverseWaveletTransform[%]特性 (4)
dwd = StationaryWaveletPacketTransform[RandomReal[1, 8], DaubechiesWavelet[], Full]{dwd["Transform"], dwd["Wavelet"], dwd["Padding"]}{dwd["Refinement"], Max[Length /@ dwd["WaveletIndex"]]}dwd = DiscreteWaveletPacketTransform[{6, 1, 4, 0}]dwd["WaveletIndex"]Table[dwd[{"TreeView", pos}], {pos, {Top, Left, Center}}]dwd["Dimensions"]dwd = WaveletBestBasis[DiscreteWaveletPacketTransform[{1, 2, 3, 3}]]dwd["BasisIndex"]全係数の木あるいはブロック格子でハイライトされたウェーブレット基底を示す:
{dwd["TreeView"], dwd["BestBasisBlockView"]}dwd["EnergyFraction"]WaveletBestBasisで計算された基底の各係数配列の費用値:
dwd["BestBasisCostValues"]data = [image];dwd = DiscreteWaveletTransform[data]{dwd["DataDimensions"], dwd["DataChannels"]}dwd["DataWrapper"]{Head[data], Head[InverseWaveletTransform[dwd]]}オプション (7)
Method (1)
Methodの設定値はウェーブレット変換のメソッドと同じである:
lwd = LiftingWaveletTransform[Range[8], Method -> "IntegerLifting"]DiscreteWaveletDataを生成して"IntegerLifting"を行う:
ilwd = DiscreteWaveletData[Normal[lwd], Method -> "IntegerLifting"]InverseWaveletTransform[ilwd]Padding (2)
Paddingの設定値は"Periodic"を含むArrayPadのメソッドと同じである:
ArrayPad[{a, b, c}, 4, "Periodic"]ArrayPad[{a, b, c}, 4, "Reversed"]ArrayPad[{a, b, c}, 4, "ReversedNegation"]ArrayPad[{a, b, c}, 4, "Reflected"]ArrayPad[{a, b, c}, 3, "ReflectedDifferences"]ArrayPad[{a, b, c}, 4, "ReversedDifferences"]ArrayPad[{a, b, c}, 3, "Extrapolated"]デフォルトで,Padding->"Periodic"オプションが使われる:
DiscreteWaveletData[{{0} -> Range[10]}, Padding -> "Periodic"] == DiscreteWaveletData[{{0} -> Range[10]}]SampleRate (1)
Sound入力には,SampleRateが自動的に計算される:
snd = Sound[SampledSoundList[Table[Cos[100 t^2], {t, 0, 1, 1. / 255}], 250]]dwd = LiftingWaveletTransform[snd, Automatic, 2];デフォルトで,SampleRateが最初の係数規則から抽出される:
srules = dwd[All, "Sound"];First[srules]InverseWaveletTransform[DiscreteWaveletData[srules]]SampleRateを明示的に指定する:
InverseWaveletTransform[DiscreteWaveletData[srules, SampleRate -> 250]]WorkingPrecision (3)
デフォルトで,WorkingPrecision->MachinePrecisionが使われる:
dwd1 = DiscreteWaveletData[{{0} -> {1, 2, 3, 4}, {1} -> {1, 2, 3, 4}}]dwd2 = DiscreteWaveletData[{{0} -> {1, 2, 3, 4}, {1} -> {1, 2, 3, 4}}, WorkingPrecision -> MachinePrecision]dwd1 == dwd2dwd = Normal@DiscreteWaveletData[{{0} -> {1, 2, 3, 4}}, WorkingPrecision -> 25]{Precision[dwd], Accuracy[dwd]}厳密計算にWorkingPrecision->∞ を使う:
data = RandomInteger[10, {4}];dwd = LiftingWaveletTransform[data, WorkingPrecision -> ∞];Normal[dwd]//Simplifyndwd = DiscreteWaveletData[Normal[dwd], WorkingPrecision -> ∞];Normal[ndwd]//Simplifyアプリケーション (3)
data = ConstantArray[N@Sin[5 Range[0, 2π, (2π/1023)]], {1024}];
data = data + Transpose[data];MatrixPlot[data]dwd = LiftingWaveletTransform[data, Automatic, 8]wcoeff = dwd[Automatic];data のByteCountと対応するウェーブレット係数 wcoeff を比較する:
cdata = Compress[data];
cwcoeff = Compress[wcoeff];BarChart[{(ByteCount[cdata]/1024^2), (ByteCount[cwcoeff]/1024^2)}, ChartLabels -> {"data", "wavelet coefficients"}]ndwd = DiscreteWaveletData[Uncompress[cwcoeff]]MatrixPlot[InverseWaveletTransform[ndwd]]UnitVectorを詳細化レベル
でローパス係数として設定してスケーリング関数
を計算する:
j = 10;
wind = ConstantArray[0, j];dwd = DiscreteWaveletData[{wind -> Sqrt[2]^j UnitVector[4, 1]}, DaubechiesWavelet[2], LiftingWaveletTransform, Padding -> 0]ϕ = InverseWaveletTransform[dwd];Show[ListLinePlot[ϕ, PlotRange -> All, DataRange -> {0, 4}], Plot[WaveletPhi[DaubechiesWavelet[2]][x], {x, 0, 4}, PlotRange -> All, PlotStyle -> {Red, Dashed}]]UnitVectorを詳細化レベル
でハイパス係数として設定してウェーブレット関数
を計算する:
j = 10;
wind = ConstantArray[0, j];
wind[[-1]] = 1;dwd = DiscreteWaveletData[{wind -> Sqrt[2]^j UnitVector[3, 2]}, DaubechiesWavelet[2], LiftingWaveletTransform, Padding -> 0]ψ = InverseWaveletTransform[dwd];Show[ListLinePlot[-ψ, PlotRange -> All, DataRange -> {-1, 2}], Plot[WaveletPsi[DaubechiesWavelet[2]][x], {x, -1, 2}, PlotRange -> All, PlotStyle -> {Red, Dashed}]]特性と関係 (4)
DiscreteWaveletDataは離散変換係数の木を表す:
dwd = DiscreteWaveletTransform[{1, 1, 8, 1, 1, 2, 2, 1, 1}]{dwd["TreeView"], WaveletListPlot[dwd, Ticks -> Full, PlotLayout -> "CommonYAxis"]}ContinuousWaveletDataはスケール集合における連続変換係数を表す:
cwd = ContinuousWaveletTransform[{1, 1, 8, 1, 1, 2, 2, 1, 1}]{TableForm[cwd["Scales"]], WaveletScalogram[cwd, Ticks -> Full]}DiscreteWaveletDataをその係数と特性から再構築する:
dwd = LiftingWaveletTransform[{1, 2, 3, 4}, DaubechiesWavelet[2]]係数,ウェーブレット,使用する前方変換,データの次元を指定する:
dwd2 = DiscreteWaveletData[Normal[dwd], dwd["Wavelet"], dwd["Transform"], dwd["DataDimensions"]]dwd3 = DiscreteWaveletData[Normal[dwd], dwd["Wavelet"]]Map[InverseWaveletTransform, {dwd, dwd2, dwd3}]dwd = DiscreteWaveletTransform[{1, 2, 3, 4}]Normalを使う:
Normal[dwd]すべて(All)の係数を明示的に抽出する:
dwd[All]任意のウェーブレット指標にマッチするパターンBlank[] (_)を指定する:
dwd[_]ウェーブレット指標指定に対応する係数配列のみを得る同等の方法:
dwd = DiscreteWaveletTransform[{1, 2, 3, 4}]dwd[wind]が返した各規則にLastを適用する:
Last /@ dwd[{_}]Partを使う:
dwd[{_}][[All, 2]]dwd[{_}, "Values"]考えられる問題 (2)
最良基底の費用値はWaveletBestBasisを使ってDiscreteWaveletDataについてのみ得ることができる:
dwd = DiscreteWaveletPacketTransform[RandomReal[1, 6]]dwd["BestBasisCostValues"]best = WaveletBestBasis[dwd, "LogEnergy"]best["BestBasisCostValues"]dwd = DiscreteWaveletData[{{0} -> {1, 2, 3, 4}}]DiscreteWaveletDataは仮定のために1つの矛盾しない前方変換を選ぶ:
dwd["Transform"]dwd2 = DiscreteWaveletData[{{0} -> {1, 2, 3, 4}}, Automatic, DiscreteWaveletTransform]dwd2["Transform"]関連するガイド
-
▪
- ウェーブレット
テキスト
Wolfram Research (2010), DiscreteWaveletData, Wolfram言語関数, https://reference.wolfram.com/language/ref/DiscreteWaveletData.html.
CMS
Wolfram Language. 2010. "DiscreteWaveletData." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DiscreteWaveletData.html.
APA
Wolfram Language. (2010). DiscreteWaveletData. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiscreteWaveletData.html
BibTeX
@misc{reference.wolfram_2026_discretewaveletdata, author="Wolfram Research", title="{DiscreteWaveletData}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/DiscreteWaveletData.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_discretewaveletdata, organization={Wolfram Research}, title={DiscreteWaveletData}, year={2010}, url={https://reference.wolfram.com/language/ref/DiscreteWaveletData.html}, note=[Accessed: 13-September-2026]}