次数2のCoifletウェーブレットを表す.
次数 n のCoifletウェーブレットを表す.
CoifletWavelet
次数2のCoifletウェーブレットを表す.
次数 n のCoifletウェーブレットを表す.
詳細
- CoifletWaveletは直交ウェーブレット族を定義する.
- CoifletWavelet[n]は1から5までの正の整数 n について定義される
- スケーリング関数(
)とウェーブレット関数(
)は長さ
のコンパクトサポートを持つ.スケーリング関数は
個のバニッシングモーメントを持ち,ウェーブレット関数は
個のバニッシングモーメントを持つ. - CoifletWaveletはDiscreteWaveletTransform,WaveletPhi,WaveletPsi等の関数で使うことができる.
例題
すべて開く すべて閉じる例 (3)
Plot[WaveletPhi[CoifletWavelet[1], x], {x, -2, 3}, PlotRange -> All]WaveletPhi[CoifletWavelet[1], x]Plot[WaveletPsi[CoifletWavelet[1], x], {x, -2, 3}, PlotRange -> All]WaveletPsi[CoifletWavelet[1], x]WaveletFilterCoefficients[CoifletWavelet[1], {"PrimalLowpass", "PrimalHighpass"}]スコープ (12)
基本的な用法 (7)
WaveletFilterCoefficients[CoifletWavelet[1], "PrimalLowpass"]WaveletFilterCoefficients[CoifletWavelet[1], "PrimalHighpass"]WaveletFilterCoefficients[CoifletWavelet[2], "LiftingFilter"]%[{"LiftingMatrixForm", z}]lf = WaveletFilterCoefficients[CoifletWavelet[2], "LiftingFilter"]lf["ForwardLiftingFunction"][Range[8]]lf["InverseLiftingFunction"][%]Plot[WaveletPhi[CoifletWavelet[1], x], {x, -2, 3}, PlotRange -> All]Plot[WaveletPhi[CoifletWavelet[4], x], {x, -5, 5}, PlotRange -> All]Table[Plot[WaveletPhi[CoifletWavelet[1], x, MaxRecursion -> i], {x, -2, 3}, PlotLabel -> "scale " <> ToString[i]], {i, 1, 8, 2}]Plot[WaveletPsi[CoifletWavelet[1], x], {x, -2, 3}, PlotRange -> All]Plot[WaveletPsi[CoifletWavelet[4], x], {x, -3, 4}, PlotRange -> All]Table[Plot[WaveletPsi[CoifletWavelet[1], x, MaxRecursion -> i], {x, -2, 3}, PlotLabel -> "scale " <> ToString[i], PlotRange -> All], {i, 1, 8, 2}]ウェーブレット変換 (4)
DiscreteWaveletTransformを計算する:
data = Table[Tanh[t^2], {t, -3π, 3π, (6π/1023)}];ListLinePlot[data, PlotRange -> All]dwt = DiscreteWaveletTransform[data, CoifletWavelet[2], 2]dwt["TreeView"]dwt["Dimensions"]WaveletListPlot[dwt, PlotLayout -> "CommonXAxis"]DiscreteWaveletPacketTransformを計算する:
data = Table[Tanh[t^2], {t, -3π, 3π, (6π/1023)}];dwpt = DiscreteWaveletPacketTransform[data, CoifletWavelet[2], 2]dwpt["TreeView"]dwpt["Dimensions"]WaveletListPlot[dwpt, PlotLayout -> "CommonXAxis"]StationaryWaveletTransformを計算する:
data = Table[Tanh[t^2], {t, -3π, 3π, (6π/1023)}];swt = StationaryWaveletTransform[data, CoifletWavelet[2], 2];swt["TreeView"]swt["Dimensions"]WaveletListPlot[swt, PlotLayout -> "CommonXAxis"]StationaryWaveletPacketTransformを計算する:
data = Table[Tanh[t^2], {t, -3π, 3π, (6π/1023)}];swpt = StationaryWaveletPacketTransform[data, CoifletWavelet[2], 2];swpt["TreeView"]swpt["Dimensions"]WaveletListPlot[swpt, PlotLayout -> "CommonXAxis"]より高い次元 (1)
多変量スケーリング関数と多変量ウェーブレット関数はそれぞれの一変量関数の積である:
ϕ = WaveletPhi[CoifletWavelet[1]];
ψ = WaveletPsi[CoifletWavelet[1]];Plot3D[Evaluate[ϕ[x]ϕ[y]], {x, -2, 3}, {y, -2, 3}, Axes -> None, ColorFunction -> "SolarColors", PlotRange -> All, Mesh -> None]Plot3D[Evaluate[ϕ[x]ψ[y]], {x, -2, 3}, {y, -2, 3}, Axes -> None, ColorFunction -> "SolarColors", PlotRange -> All, Mesh -> None]Plot3D[Evaluate[ψ[x]ϕ[y]], {x, -2, 3}, {y, -2, 3}, Axes -> None, ColorFunction -> "SolarColors", PlotRange -> All, Mesh -> None]Plot3D[Evaluate[ψ[x]ψ[y]], {x, -2, 3}, {y, -2, 3}, Axes -> None, ColorFunction -> "SolarColors", PlotRange -> All, Mesh -> None]アプリケーション (3)
data = Table[Abs[Sin[2π x]] + 1.5Abs[Cos[2π x - π]], {x, 0, 1, (1/2^6 - 1)}];dwd = DiscreteWaveletTransform[data, CoifletWavelet[1]];n 個の最大係数を保ちその他すべてを閾値化することでもとのデータを近似する:
{data8, data16, data32} = Table[InverseWaveletTransform@WaveletThreshold[dwd, {"LargestCoefficients", n}, Automatic], {n, {8, 16, 32}}];ListLinePlot[{data, data8, data16, data32}, PlotRange -> All]data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/2^9)}];ListLinePlot[data]dwt = DiscreteWaveletTransform[data, CoifletWavelet[1], 4]WaveletListPlot[dwt, {{1}, {0, 1}, {0, 0, 1}, {0, 0, 0}}, PlotLayout -> "CommonXAxis", Method -> {"Inverse" -> True}]data = Table[Sin[2π t], {t, 0, 1, 1 / 63}];ListPlot[data]cumulativeEnergy[data_] := Module[{c = Sort[Flatten[data]^2, Greater]}, Accumulate[c] / Total[c]]ListPlot[cumulativeEnergy[data]]信号のエネルギーは比較的少ないウェーブレット係数で捉えられる:
dwd1 = DiscreteWaveletTransform[data, CoifletWavelet[1], 1];dwd2 = DiscreteWaveletTransform[data, CoifletWavelet[1], 2];ListPlot[{cumulativeEnergy[data], cumulativeEnergy[Last /@ dwd1[Automatic]], cumulativeEnergy[Last /@ dwd2[Automatic]]}, PlotStyle -> {Red, Blue, Orange}]特性と関係 (11)
WaveletFilterCoefficients[CoifletWavelet[2]][[All, 2]]//Total//ChopWaveletFilterCoefficients[CoifletWavelet[2], "PrimalHighpass"][[All, 2]]//Total//Chopϕ = WaveletPhi[CoifletWavelet[3]];Integrate[ϕ[x], {x, -∞, ∞}]Table[NIntegrate[ϕ[(x/2^j)], {x, -∞, ∞}, AccuracyGoal -> 4] - 2^j, {j, 0, 3}]Integrate[WaveletPsi[CoifletWavelet[3], x], {x, -∞, ∞}]ウェーブレット関数は同じスケールのスケーリング関数と直交する.
:
NIntegrate[WaveletPsi[CoifletWavelet[4], x] WaveletPhi[CoifletWavelet[4], x], {x, -∞, ∞}, AccuracyGoal -> 4]WaveletFilterCoefficients[CoifletWavelet[4]][[All, 2]].WaveletFilterCoefficients[CoifletWavelet[4], "PrimalHighpass"][[All, 2]]ϕ = WaveletPhi[CoifletWavelet[2]];a = WaveletFilterCoefficients[CoifletWavelet[2], "PrimalLowpass"];scalet[x_, ϕ_, a_] := 2Table[a[[i, 2]]ϕ[2x - a[[i, 1]]], {i, Length[a]}]{Plot[Evaluate@scalet[x, ϕ, a], {x, -4, 7}, PlotRange -> All],
Plot[Total@scalet[x, ϕ, a], {x, -4, 7}, PlotRange -> All]}ϕ = WaveletPhi[CoifletWavelet[2]];b = WaveletFilterCoefficients[CoifletWavelet[2], "PrimalHighpass"];wavelet[x_, ϕ_, b_] := 2Table[b[[i, 2]]ϕ[2x - b[[i, 1]]], {i, Length[b]}]{Plot[Evaluate@wavelet[x, ϕ, b], {x, -5, 6}, PlotRange -> All], Plot[Total@wavelet[x, ϕ, b], {x, -5, 6}, PlotRange -> All]}h[wav_, ω_] := With[{a = WaveletFilterCoefficients[wav]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]Plot[Abs[h[CoifletWavelet[2], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]Plot[{Abs[h[CoifletWavelet[2], ω]], Abs[h[CoifletWavelet[5], ω]]}, {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]h[wav_, ω_] := With[{a = WaveletFilterCoefficients[wav]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]fh[wav_, ω_, j_] := Abs[Product[h[wav, (ω/2^i)], {i, j}]]Plot[fh[CoifletWavelet[4], ω, 10], {ω, -5Pi, 5Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[ϕ, ^ ][ω]]}]g[wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "PrimalHighpass"]}, Sum[b[[i, 2]]Exp[-I b[[i, 1]]ω], {i, Length[b]}]
]Plot[Abs[g[CoifletWavelet[2], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[G[ω]]}]Plot[{Abs[g[CoifletWavelet[2], ω]], Abs[g[CoifletWavelet[5], ω]]}, {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[G[ω]]}]h[wav_, ω_] := With[{a = WaveletFilterCoefficients[wav]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]g[wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "PrimalHighpass"]}, Sum[b[[i, 2]]Exp[-I b[[i, 1]]ω], {i, Length[b]}]
]fg[wav_, ω_, j_] := Abs[g[wav, (ω/2)]Product[h[wav, (ω/2^i)], {i, 2, j}]]Plot[fg[CoifletWavelet[2], ω, 10], {ω, -5Pi, 5Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[ψ, ^ ][ω]]}]考えられる問題 (1)
CoifletWaveletでは n は5より小さくなければならない:
WaveletPhi[CoifletWavelet[6]]n が正の機械整数でなければ,CoifletWaveletは定義されない:
WaveletPhi[CoifletWavelet[2 + I]]おもしろい例題 (2)
ϕ[x_, j_, k_] := 2^j / 2WaveletPhi[CoifletWavelet[1], 2^jx - k]Plot[Evaluate@Table[ϕ[x, j, 0], {j, 0, 4}], {x, -0.5, 0.5}, Filling -> Axis, PlotRange -> All]Plot[Evaluate@Table[ϕ[x, 2, k], {k, 0, 2^2 - 1}], {x, -0.5, 1.5}, Filling -> Axis, PlotRange -> All]ψ[x_, j_, k_] := 2^j / 2WaveletPsi[CoifletWavelet[1], 2^jx - k]Plot[Evaluate@Table[ψ[x, j, 0], {j, 0, 4}], {x, -0.5, 1}, Filling -> Axis, PlotRange -> All]Plot[Evaluate@Table[ψ[x, 2, k], {k, 0, 2^2 - 1}], {x, -0.5, 1.5}, Filling -> Axis, PlotRange -> All]テクニカルノート
関連するガイド
-
▪
- ウェーブレット
テキスト
Wolfram Research (2010), CoifletWavelet, Wolfram言語関数, https://reference.wolfram.com/language/ref/CoifletWavelet.html.
CMS
Wolfram Language. 2010. "CoifletWavelet." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CoifletWavelet.html.
APA
Wolfram Language. (2010). CoifletWavelet. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CoifletWavelet.html
BibTeX
@misc{reference.wolfram_2026_coifletwavelet, author="Wolfram Research", title="{CoifletWavelet}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/CoifletWavelet.html}", note=[Accessed: 08-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_coifletwavelet, organization={Wolfram Research}, title={CoifletWavelet}, year={2010}, url={https://reference.wolfram.com/language/ref/CoifletWavelet.html}, note=[Accessed: 08-September-2026]}