represents the Shannon wavelet evaluated on the equally spaced interval {-10,10}.
ShannonWavelet[lim]
represents the Shannon wavelet evaluated on the equally spaced interval {-lim,lim}.
ShannonWavelet
represents the Shannon wavelet evaluated on the equally spaced interval {-10,10}.
ShannonWavelet[lim]
represents the Shannon wavelet evaluated on the equally spaced interval {-lim,lim}.
Details
- ShannonWavelet defines a family of orthonormal wavelets.
- ShannonWavelet[lim] is defined for any positive real lim.
- The scaling function (
) and wavelet function (
) have infinite support. The functions are symmetric. - The scaling function (
) is given by
. - The wavelet function (
) is given by
. - ShannonWavelet can be used with such functions as DiscreteWaveletTransform and WaveletPhi, etc.
Examples
open all close allBasic Examples (3)
Plot[WaveletPhi[ShannonWavelet[], x], {x, -9, 9}, PlotRange -> All]WaveletPhi[ShannonWavelet[], x, WorkingPrecision -> ∞]Plot[WaveletPsi[ShannonWavelet[], x], {x, -8, 8}, PlotRange -> All]WaveletPsi[ShannonWavelet[], x, WorkingPrecision -> ∞]WaveletFilterCoefficients[ShannonWavelet[4], {"PrimalLowpass", "PrimalHighpass"}, WorkingPrecision -> ∞]Scope (7)
Basic Uses (2)
Wavelet Transforms (4)
Compute a DiscreteWaveletTransform:
data = Table[Sin[t^2], {t, -3 π, 3 π, (6 π/1023)}];ListLinePlot[data, PlotRange -> All]dwt = DiscreteWaveletTransform[data, ShannonWavelet[], 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"]ShannonWavelet can be used to perform DiscreteWaveletPacketTransform:
data = Table[Sin[t^2], {t, -3 π, 3 π, (6 π/1023)}];dwpt = DiscreteWaveletPacketTransform[data, ShannonWavelet[], 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"]ShannonWavelet can be used to perform StationaryWaveletTransform:
data = Table[Sin[t^2], {t, -3 π, 3 π, (6 π/1023)}];swt = StationaryWaveletTransform[data, ShannonWavelet[], 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"]ShannonWavelet can be used to perform StationaryWaveletPacketTransform:
data = Table[Sin[t^2], {t, -3 π, 3 π, (6 π/1023)}];swpt = StationaryWaveletPacketTransform[data, ShannonWavelet[], 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"]Higher Dimensions (1)
Multivariate scaling and wavelet functions are products of univariate ones:
ϕ = WaveletPhi[ShannonWavelet[]];
ψ = WaveletPsi[ShannonWavelet[]];Plot3D[Evaluate[ϕ[x] ψ[y]], {x, -8, 8}, {y, -8, 8}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ϕ[x] ψ[y]], {x, -8, 8}, {y, -8, 8}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ψ[x] ϕ[y]], {x, -8, 8}, {y, -8, 8}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Plot3D[Evaluate[ψ[x] ψ[y]], {x, -8, 8}, {y, -8, 8}, PlotRange -> All, ColorFunction -> "SolarColors", Mesh -> None, Axes -> None]Properties & Relations (8)
Lowpass filter coefficients approximately sum to unity;
:
Chop[Total[WaveletFilterCoefficients[ShannonWavelet[], "PrimalLowpass"][[All, 2]]]]Highpass filter coefficients approximately sum to zero;
:
Chop[Total[WaveletFilterCoefficients[ShannonWavelet[], "PrimalHighpass"][[All, 2]]]]Scaling function integrates to unity;
:
ϕ = WaveletPhi[ShannonWavelet[]];Subsuperscript[∫, -∞, ∞]ϕ[x]ⅆxWavelet function integrates to zero;
:
ψ = WaveletPsi[ShannonWavelet[]];NIntegrate[ψ[x], {x, -∞, ∞}, AccuracyGoal -> 4]
satisfies the recursion equation
:
ϕ = WaveletPhi[ShannonWavelet[]];a = WaveletFilterCoefficients[ShannonWavelet[], "PrimalLowpass"];Plot the components and the sum of the recursion:
scalet[x_, ϕ_, a_] := 2 Table[a[[i, 2]] ϕ[2 x - a[[i, 1]]], {i, Length[a]}]{Plot[Evaluate[scalet[x, ϕ, a]], {x, -5, 5}, PlotRange -> All], Plot[{Total[scalet[x, ϕ, a]]}, {x, -5, 5}, PlotRange -> All]}
satisfies the recursion equation
:
ϕ = WaveletPhi[ShannonWavelet[]];b = WaveletFilterCoefficients[ShannonWavelet[], "PrimalHighpass"];Plot the components and the sum of the recursion:
wavelet[x_, ϕ_, b_] := 2 Table[b[[i, 2]] ϕ[2 x - b[[i, 1]]], {i, Length[b]}]{Plot[Evaluate[wavelet[x, ϕ, b]], {x, -5, 5}, PlotRange -> All], Plot[Total[wavelet[x, ϕ, b]], {x, -5, 5}, PlotRange -> All]}Frequency response for
is given by
:
h[wav_, ω_] := With[{a = WaveletFilterCoefficients[wav]}, Underoverscript[∑, i, Length[a]]a[[i, 2]] Exp[-I a[[i, 1]] ω]]The filter is a lowpass filter:
Plot[Abs[h[ShannonWavelet[20], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]With wider interval {-lim,lim}, the frequency response function approaches ideal frequency response:
hfr[ω_] := Piecewise[{{1, -(π/2) ≤ Abs[ω] ≤ (π/2)}}]Plot[{Abs[h[ShannonWavelet[50], ω]], hfr[ω]}, {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]Frequency response for
is given by
:
g[wav_, ω_] := With[{b = WaveletFilterCoefficients[wav, "PrimalHighpass"]}, Underoverscript[∑, i, Length[b]]b[[i, 2]] Exp[-I b[[i, 1]] ω]]The filter is a highpass filter:
Plot[Abs[g[ShannonWavelet[20], ω]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[G[ω]]}]With wider interval {-lim,lim}, the frequency response function approaches ideal frequency response:
gfr[ω_] := Piecewise[{{0, -(π/2) ≤ Abs[ω] ≤ (π/2)}}, 1]Plot[{Abs[g[ShannonWavelet[50], ω]], gfr[ω]}, {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[G[ω]]}]Possible Issues (1)
Due to noncompact support, ShannonWavelet poorly approximates the data:
data = RandomReal[1, {1024}];dwd = DiscreteWaveletTransform[data, ShannonWavelet[]];Norm[data - InverseWaveletTransform[dwd]]Use wider interval {-lim,lim} to improve wavelet approximation:
dwd = DiscreteWaveletTransform[data, ShannonWavelet[100]];Norm[data - InverseWaveletTransform[dwd]]Neat Examples (2)
Plot translates and dilations of scaling function:
ϕ[x_, j_, k_] := 2^j / 2 WaveletPhi[ShannonWavelet[], 2^j x - k]Plot[Evaluate[Table[ϕ[x, j, 0], {j, 0, 2}]], {x, -1, 1}, Filling -> Axis, PlotRange -> All]Plot[Evaluate[Table[ϕ[x, 2, k], {k, 0, 2^2 - 1}]], {x, -1, 2}, Filling -> Axis, PlotRange -> All]Plot translates and dilations of wavelet function:
ψ[x_, j_, k_] := 2^j / 2 WaveletPsi[ShannonWavelet[], 2^j x - k]Plot[Evaluate[Table[ψ[x, j, 0], {j, 0, 2}]], {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]Tech Notes
Related Guides
History
Text
Wolfram Research (2010), ShannonWavelet, Wolfram Language function, https://reference.wolfram.com/language/ref/ShannonWavelet.html.
CMS
Wolfram Language. 2010. "ShannonWavelet." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ShannonWavelet.html.
APA
Wolfram Language. (2010). ShannonWavelet. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ShannonWavelet.html
BibTeX
@misc{reference.wolfram_2026_shannonwavelet, author="Wolfram Research", title="{ShannonWavelet}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/ShannonWavelet.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_shannonwavelet, organization={Wolfram Research}, title={ShannonWavelet}, year={2010}, url={https://reference.wolfram.com/language/ref/ShannonWavelet.html}, note=[Accessed: 13-June-2026]}