ReverseBiorthogonalSplineWavelet[]
represents a reverse biorthogonal spline wavelet of order 4 and dual order 2.
ReverseBiorthogonalSplineWavelet[n,m]
represents a reverse biorthogonal spline wavelet of order n and dual order m.
ReverseBiorthogonalSplineWavelet
ReverseBiorthogonalSplineWavelet[]
represents a reverse biorthogonal spline wavelet of order 4 and dual order 2.
ReverseBiorthogonalSplineWavelet[n,m]
represents a reverse biorthogonal spline wavelet of order n and dual order m.
Details
- ReverseBiorthogonalSplineWavelet defines a family of biorthogonal wavelets.
- ReverseBiorthogonalSplineWavelet[n,m] is defined for positive integers m and n where m+n is even.
- The scaling function (
) and wavelet function (
) have compact support. The functions are symmetric. - ReverseBiorthogonalSplineWavelet can be used with such functions as DiscreteWaveletTransform and WaveletPhi, etc.
Examples
open all close allBasic Examples (6)
Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -2, 2}, PlotRange -> All]Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -2, 3}, PlotRange -> All]Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -4, 4}, PlotRange -> All]Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -2, 3}, PlotRange -> All]WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], {"PrimalLowpass", "PrimalHighpass"}, WorkingPrecision -> ∞]WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], {"DualLowpass", "DualHighpass"}, WorkingPrecision -> ∞]Scope (17)
Basic Uses (10)
Compute primal lowpass filter coefficients:
WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "PrimalLowpass"]Dual lowpass filter coefficients:
WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "DualLowpass"]Primal highpass filter coefficients:
WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "PrimalHighpass"]Dual highpass filter coefficients:
WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "DualHighpass"]WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "LiftingFilter", WorkingPrecision -> ∞]%[{"LiftingMatrixForm", z}]Generate a function to compute lifting wavelet transform:
lf = WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[2, 4], "LiftingFilter", WorkingPrecision -> ∞]lf["ForwardLiftingFunction"][Range[8]]lf["InverseLiftingFunction"][%]Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -1, 1}, PlotRange -> All]Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -4, 4}, PlotRange -> All]Plot scaling function using different levels of recursion:
Table[Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[4, 4], x, MaxRecursion -> i], {x, -2, 2}, PlotLabel -> i, PlotRange -> All], {i, 1, 8, 2}]Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -2, 3}, PlotRange -> All]Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -2, 3}, PlotRange -> All]Plot wavelet function at different refinement scales:
Table[Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[4, 4], x, MaxRecursion -> i], {x, -3, 4}, PlotLabel -> i, PlotRange -> All], {i, 1, 8, 2}]Wavelet Transforms (5)
Compute a DiscreteWaveletTransform:
data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/1023)}];ListLinePlot[data, PlotRange -> All]dwt = DiscreteWaveletTransform[data, ReverseBiorthogonalSplineWavelet[4, 4], 2]View the tree of wavelet coefficients:
dwt["TreeView"]Get the dimensions of wavelet coefficients:
dwt["Dimensions"]Plot the wavelet coefficients:
WaveletListPlot[dwt, PlotLayout -> "CommonXAxis"]Compute a DiscreteWaveletPacketTransform:
data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/1023)}];dwpt = DiscreteWaveletPacketTransform[data, ReverseBiorthogonalSplineWavelet[4, 4], 2]View the tree of wavelet coefficients:
dwpt["TreeView"]Get the dimensions of wavelet coefficients:
dwpt["Dimensions"]Plot the wavelet coefficients:
WaveletListPlot[dwpt, PlotLayout -> "CommonXAxis"]Compute a StationaryWaveletTransform:
data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/1023)}];swt = StationaryWaveletTransform[data, ReverseBiorthogonalSplineWavelet[4, 4], 2];View the tree of wavelet coefficients:
swt["TreeView"]Get the dimensions of wavelet coefficients:
swt["Dimensions"]Plot the wavelet coefficients:
WaveletListPlot[swt, PlotLayout -> "CommonXAxis"]Compute a StationaryWaveletPacketTransform:
data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/1023)}];swpt = StationaryWaveletPacketTransform[data, ReverseBiorthogonalSplineWavelet[4, 4], 2];View the tree of wavelet coefficients:
swpt["TreeView"]Get the dimensions of wavelet coefficients:
swpt["Dimensions"]Plot the wavelet coefficients:
WaveletListPlot[swpt, PlotLayout -> "CommonXAxis"]Compute a LiftingWaveletTransform:
data = Table[Sin[4π t] + 2Exp[-10 ^ 5(1 / 3 - t) ^ 2], {t, 0, 1, (1/1023)}];lwt = LiftingWaveletTransform[data, ReverseBiorthogonalSplineWavelet[4, 4], 2];View the tree of wavelet coefficients:
lwt["TreeView"]Get the dimensions of wavelet coefficients:
lwt["Dimensions"]Plot the wavelet coefficients:
WaveletListPlot[lwt, PlotLayout -> "CommonXAxis"]Higher Dimensions (2)
Multivariate scaling and wavelet functions are products of univariate ones:
ϕ = WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 3]];
ψ = WaveletPsi[ReverseBiorthogonalSplineWavelet[3, 3]];Plot3D[Evaluate[ϕ[x]ϕ[y]], {x, -1, 2}, {y, -1, 2}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ϕ[x]ψ[y]], {x, -1, 2}, {y, -2, 3}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ψ[x]ϕ[y]], {x, -2, 3}, {y, -1, 2}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ψ[x]ψ[y]], {x, -2, 3}, {y, -2, 3}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Multivariate dual scaling and wavelet functions are products of univariate ones:
Overscript[ϕ, ~] = WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 3], #, "Dual"]&;
Overscript[ψ, ~] = WaveletPsi[ReverseBiorthogonalSplineWavelet[3, 3], #, "Dual"]&;Plot3D[Evaluate[Overscript[ϕ, ~][x]Overscript[ϕ, ~][y]], {x, -3, 4}, {y, -3, 4}, PlotRange -> All, ColorFunction -> "RustTones", Mesh -> None, Axes -> None]Plot3D[Evaluate[Overscript[ϕ, ~][x]Overscript[ψ, ~][y]], {x, -3, 4}, {y, -2, 3}, PlotRange -> All, ColorFunction -> "RustTones", Mesh -> None, Axes -> None]Plot3D[Evaluate[Overscript[ψ, ~][x]Overscript[ϕ, ~][y]], {x, -2, 3}, {y, -3, 4}, PlotRange -> All, ColorFunction -> "RustTones", Mesh -> None, Axes -> None]Plot3D[Evaluate[Overscript[ψ, ~][x]Overscript[ψ, ~][y]], {x, -2, 3}, {y, -2, 3}, PlotRange -> All, ColorFunction -> "RustTones", Mesh -> None, Axes -> None]Properties & Relations (19)
ReverseBiorthogonalSplineWavelet[1,1] is equivalent to HaarWavelet:
WaveletFilterCoefficients[HaarWavelet[]] == WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[1, 1]]WaveletFilterCoefficients[HaarWavelet[]] == WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[1, 1], "DualLowpass"]ReverseBiorthogonalSplineWavelet
is equivalent to BiorthogonalSplineWavelet
:
{Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -1, 1}, PlotRange -> All], Plot[WaveletPhi[BiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -1, 1}, PlotRange -> All]}ReverseBiorthogonalSplineWavelet
is equivalent to BiorthogonalSplineWavelet
:
{Plot[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -4, 4}, PlotRange -> All], Plot[WaveletPhi[BiorthogonalSplineWavelet[2, 4], x], {x, -4, 4}, PlotRange -> All]}ReverseBiorthogonalSplineWavelet
is equivalent to BiorthogonalSplineWavelet
:
{Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x], {x, -2, 3}, PlotRange -> All], Plot[WaveletPsi[BiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -2, 3}, PlotRange -> All]}ReverseBiorthogonalSplineWavelet
is equivalent to BiorthogonalSplineWavelet
:
{Plot[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 4], x, "Dual"], {x, -2, 3}, PlotRange -> All], Plot[WaveletPsi[BiorthogonalSplineWavelet[2, 4], x], {x, -2, 3}, PlotRange -> All]}Lowpass filter coefficients sum to unity;
:
Total@WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2]][[All, 2]]Highpass filter coefficients sum to zero;
:
Total@WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2], "PrimalHighpass"][[All, 2]]Dual filter coefficients sum to unity;
:
Total@WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2], "DualLowpass"][[All, 2]]Dual highpass filter coefficients sum to zero;
:
Total@WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2], "DualHighpass"][[All, 2]]Scaling function integrates to unity;
:
Integrate[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 2], x], {x, -∞, ∞}]Dual scaling function integrates to unity;
:
Integrate[WaveletPhi[ReverseBiorthogonalSplineWavelet[2, 2], x, "Dual"], {x, -∞, ∞}]Wavelet function integrates to zero;
:
Integrate[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 2], x], {x, -∞, ∞}]Dual wavelet function integrates to zero;
:
Integrate[WaveletPsi[ReverseBiorthogonalSplineWavelet[2, 2], x, "Dual"], {x, -∞, ∞}]//ChopScaling function
has compact support {n1,n2}:
ϕ = WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 3], x]{n1, n2} = {-1, 2};Dual scaling function
has compact support {nd1,nd2}:
Overscript[ϕ, ~] = WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 3], x, "Dual"]{nd1, nd2} = {-3, 4};Corresponding wavelet function
has support {(n1– nd2+1)/2, (n2– nd1+1)/2}:
ψ = WaveletPsi[ReverseBiorthogonalSplineWavelet[3, 3], x]{(n1 - nd2 + 1/2), (n2 - nd1 + 1/2)}Dual wavelet function
has support {(nd1– n2+1)/2, (nd2– n1+1)/2}:
Overscript[ψ, ~] = WaveletPsi[ReverseBiorthogonalSplineWavelet[3, 3], x, "Dual"]{(nd1 - n2 + 1/2), (nd2 - n1 + 1/2)}
satisfies the recursion equation
:
ϕ = WaveletPhi[ReverseBiorthogonalSplineWavelet[4, 2]];a = WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2], "PrimalLowpass"];Plot the components and the sum of the recursion:
scalet[x_, ϕ_, a_] := 2Table[a[[i, 2]]ϕ[2x - a[[i, 1]]], {i, Length[a]}]{Plot[Evaluate@scalet[x, ϕ, a], {x, -2, 2}, PlotRange -> All],
Plot[Total@scalet[x, ϕ, a], {x, -2, 2}, PlotRange -> All]}
satisfies the recursion equation
:
ϕ = WaveletPhi[ReverseBiorthogonalSplineWavelet[4, 2]];b = WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[4, 2], "PrimalHighpass"];Plot the components and the sum of the recursion:
wavelet[x_, ϕ_, b_] := 2Table[b[[i, 2]]ϕ[2x - b[[i, 1]]], {i, Length[b]}]{Plot[Evaluate@wavelet[x, ϕ, b], {x, -2, 3}, PlotRange -> All], Plot[Total@wavelet[x, ϕ, b], {x, -2, 3}, PlotRange -> All]}
satisfies the recursion equation
:
Overscript[ϕ, ~] = ( Evaluate[WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 5], #, "Dual"]]&);Overscript[a, ~] = WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[3, 5], "DualLowpass"];Plot the components and the sum of the recursion:
scalet[x_, ϕ_, a_] := 2Table[a[[i, 2]]ϕ[2x - a[[i, 1]]], {i, Length[a]}]{Plot[Evaluate@scalet[x, Overscript[ϕ, ~], Overscript[a, ~]], {x, -3, 4}, PlotRange -> All],
Plot[Total@scalet[x, Overscript[ϕ, ~], Overscript[a, ~]], {x, -3, 4}, PlotRange -> All]}
satisfies the recursion equation
:
Overscript[ϕ, ~] = ( Evaluate[WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 5], #, "Dual"]]&);Overscript[b, ~] = WaveletFilterCoefficients[ReverseBiorthogonalSplineWavelet[3, 5], "DualHighpass"];Plot the components and the sum of the recursion:
wavelet[x_, ϕ_, b_] := 2Table[b[[i, 2]]ϕ[2x - b[[i, 1]]], {i, Length[b]}]{Plot[Evaluate@wavelet[x, Overscript[ϕ, ~], Overscript[b, ~]], {x, -2, 3}, PlotRange -> All],
Plot[Total@wavelet[x, Overscript[ϕ, ~], Overscript[b, ~]], {x, -2, 3}, PlotRange -> All]}Frequency response for
is given by
:
h[wav_, ω_] := With[{a = WaveletFilterCoefficients[wav]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]The filter is a lowpass filter:
Plot[Abs[h[ReverseBiorthogonalSplineWavelet[3, 3], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]Fourier transform of
is given by
:
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[ReverseBiorthogonalSplineWavelet[3, 3], ω, 10], {ω, -10Pi, 10 Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[ϕ, ^ ][ω]]}]Frequency response for
is given by
:
Overscript[h, ~][wav_, ω_] := With[{a = WaveletFilterCoefficients[wav, "DualLowpass"]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]The filter is a dual lowpass filter:
Plot[Abs[Overscript[h, ~][ReverseBiorthogonalSplineWavelet[3, 3], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[Overscript[H, ~][ω]]}]Fourier transform of
is given by
:
Overscript[h, ~][wav_, ω_] := With[{a = WaveletFilterCoefficients[wav, "DualLowpass"]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]fh[wav_, ω_, j_] := Abs[Product[Overscript[h, ~][wav, (ω/2^i)], {i, j}]]Plot[fh[ReverseBiorthogonalSplineWavelet[3, 3], ω, 10], {ω, -10Pi, 10Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[Overscript[ϕ, ~], ^ ][ω]]}]Frequency response for
is given by
:
g[wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "PrimalHighpass"]}, Sum[b[[i, 2]]Exp[-I b[[i, 1]]ω], {i, Length[b]}]
]The filter is a lowpass filter:
Plot[Abs[g[ReverseBiorthogonalSplineWavelet[3, 3], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[G[ω]]}]Fourier transform of
is given by
:
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[ReverseBiorthogonalSplineWavelet[3, 3], ω, 10], {ω, -10Pi, 10Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[ψ, ^ ][ω]]}]Frequency response for
is given by
:
Overscript[g, ~][wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "DualHighpass"]}, Sum[b[[i, 2]]Exp[-I b[[i, 1]]ω], {i, Length[b]}]
]The filter is a lowpass filter:
Plot[Abs[Overscript[g, ~][ReverseBiorthogonalSplineWavelet[3, 3], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[Overscript[G, ~][ω]]}]Fourier transform of
is given by
:
Overscript[h, ~][wav_, ω_] := With[{a = WaveletFilterCoefficients[wav, "DualLowpass"]}, Sum[a[[i, 2]]Exp[-I a[[i, 1]]ω], {i, Length[a]}]]Overscript[g, ~][wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "DualHighpass"]}, Sum[b[[i, 2]]Exp[-I b[[i, 1]]ω], {i, Length[b]}]
]Overscript[fg, ~][wav_, ω_, j_] := Abs[Overscript[g, ~][wav, (ω/2)]Product[Overscript[h, ~][wav, (ω/2^i)], {i, 2, j}]]Plot[Overscript[fg, ~][ReverseBiorthogonalSplineWavelet[3, 3], ω, 10], {ω, -10Pi, 10Pi}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[Overscript[ψ, ~], ^ ][ω]]}]Neat Examples (2)
Plot translates and dilations of scaling function:
ϕ[x_, j_, k_] := 2^j / 2WaveletPhi[ReverseBiorthogonalSplineWavelet[3, 3], 2^jx - k]Plot[Evaluate@Table[ϕ[x, j, 0], {j, 0, 4}], {x, -1, 2}, Filling -> Axis, PlotRange -> All, Axes -> {True, False}]Plot[Evaluate@Table[ϕ[x, 2, k], {k, 0, 2^2 - 1}], {x, -0.5, 2}, Filling -> Axis, PlotRange -> All]Plot translates and dilations of wavelet function:
ψ[x_, j_, k_] := 2^j / 2WaveletPsi[ReverseBiorthogonalSplineWavelet[3, 3], 2^jx - k]Plot[Evaluate@Table[ψ[x, j, 0], {j, 0, 4}], {x, -0.5, 1}, Filling -> Axis, PlotRange -> All, Axes -> {True, False}]Plot[Evaluate@Table[ψ[x, 2, k], {k, 0, 2^2 - 1}], {x, -0.5, 1.5}, Filling -> Axis, PlotRange -> All]Tech Notes
Related Guides
History
Text
Wolfram Research (2010), ReverseBiorthogonalSplineWavelet, Wolfram Language function, https://reference.wolfram.com/language/ref/ReverseBiorthogonalSplineWavelet.html.
CMS
Wolfram Language. 2010. "ReverseBiorthogonalSplineWavelet." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ReverseBiorthogonalSplineWavelet.html.
APA
Wolfram Language. (2010). ReverseBiorthogonalSplineWavelet. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ReverseBiorthogonalSplineWavelet.html
BibTeX
@misc{reference.wolfram_2026_reversebiorthogonalsplinewavelet, author="Wolfram Research", title="{ReverseBiorthogonalSplineWavelet}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/ReverseBiorthogonalSplineWavelet.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_reversebiorthogonalsplinewavelet, organization={Wolfram Research}, title={ReverseBiorthogonalSplineWavelet}, year={2010}, url={https://reference.wolfram.com/language/ref/ReverseBiorthogonalSplineWavelet.html}, note=[Accessed: 13-June-2026]}