represents the Battle–Lemarié wavelet of order 3.
represents the Battle–Lemarié wavelet of order n evaluated on equally spaced interval {-10,10}.
BattleLemarieWavelet[n,lim]
represents the Battle–Lemarié wavelet of order n evaluated on equally spaced interval {-lim,lim}.
BattleLemarieWavelet
represents the Battle–Lemarié wavelet of order 3.
represents the Battle–Lemarié wavelet of order n evaluated on equally spaced interval {-10,10}.
BattleLemarieWavelet[n,lim]
represents the Battle–Lemarié wavelet of order n evaluated on equally spaced interval {-lim,lim}.
Details
- BattleLemarieWavelet defines a family of orthogonal wavelets based on orthonormalization of B-splines of degree n.
- BattleLemarieWavelet[n] is equivalent to BattleLemarieWavelet[n,10].
- The scaling function (
) and wavelet function (
) have infinite support with an exponential decay outside the interval -lim to lim. The functions are
continuously differentiable. - BattleLemarieWavelet can be used with such functions as DiscreteWaveletTransform, WaveletPhi, etc.
Examples
open all close allBasic Examples (3)
Plot[WaveletPhi[BattleLemarieWavelet[3, 10], x], {x, -10, 10}, PlotRange -> All]WaveletPhi[BattleLemarieWavelet[3, 10], x]Plot[WaveletPsi[BattleLemarieWavelet[3, 10], x], {x, -10, 10}, PlotRange -> All]WaveletPsi[BattleLemarieWavelet[3, 10], x]WaveletFilterCoefficients[BattleLemarieWavelet[3, 5], {"PrimalLowpass", "PrimalHighpass"}]Scope (9)
Basic Uses (4)
Compute primal lowpass filter coefficients:
WaveletFilterCoefficients[BattleLemarieWavelet[3, 5], "PrimalLowpass"]Primal highpass filter coefficients:
WaveletFilterCoefficients[BattleLemarieWavelet[3, 5], "PrimalHighpass"]Battle–Lemarié scaling function of order 2:
Plot[WaveletPhi[BattleLemarieWavelet[2, 10], x], {x, -10, 10}, PlotRange -> All]Battle–Lemarié scaling function of order 5:
Plot[WaveletPhi[BattleLemarieWavelet[5, 10], x], {x, -10, 10}, PlotRange -> All]Battle–Lemarié wavelet function of order 2:
Plot[WaveletPsi[BattleLemarieWavelet[2, 10], x], {x, -10, 10}, PlotRange -> All]Battle–Lemarié wavelet function of order 5:
Plot[WaveletPsi[BattleLemarieWavelet[5, 10], x], {x, -10, 10}, PlotRange -> All]Wavelet Transforms (4)
Compute a DiscreteWaveletTransform:
data = Table[Sinc[x^2], {x, -3π, 3π, (6π/1023)}];ListLinePlot[data, PlotRange -> All]dwt = DiscreteWaveletTransform[data, BattleLemarieWavelet[3, 12], 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"]BattleLemarieWavelet can be used to perform a DiscreteWaveletPacketTransform:
data = Table[Sinc[t^2], {t, -3π, 3π, (6π/1023)}];dwpt = DiscreteWaveletPacketTransform[data, BattleLemarieWavelet[3, 12], 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"]BattleLemarieWavelet can be used to perform a StationaryWaveletTransform:
data = Table[Sinc[t^2], {t, -3π, 3π, (6π/1023)}];swt = StationaryWaveletTransform[data, BattleLemarieWavelet[3, 12], 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"]BattleLemarieWavelet can be used to perform a StationaryWaveletPacketTransform:
data = Table[Sinc[t^2], {t, -3π, 3π, (6π/1023)}];swpt = StationaryWaveletPacketTransform[data, BattleLemarieWavelet[3, 12], 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[BattleLemarieWavelet[3, 8]];
ψ = WaveletPsi[BattleLemarieWavelet[3, 8]];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 (11)
Lowpass filter coefficients approximately sum to unity;
:
WaveletFilterCoefficients[BattleLemarieWavelet[4], "PrimalLowpass"][[All, 2]]//Total//ChopHighpass filter coefficients approximately sum to zero;
:
WaveletFilterCoefficients[BattleLemarieWavelet[4], "PrimalHighpass"][[All, 2]]//Total//ChopScaling function integrates to unity;
:
ϕ = WaveletPhi[BattleLemarieWavelet[4]];Integrate[ϕ[x], {x, -∞, ∞}]Wavelet function integrates to zero;
:
ψ = WaveletPsi[BattleLemarieWavelet[4, 20]];Integrate[ψ[x], {x, -∞, ∞}]For even order n, scaling function is symmetrical about 1/2:
Plot[Evaluate[WaveletPhi[BattleLemarieWavelet[2], x]], {x, -5, 5}, PlotRange -> All, GridLines -> {{1 / 2}, None}, GridLinesStyle -> Directive[Orange, Thick]]For even order n, wavelet function is antisymmetrical about 1/2:
Plot[Evaluate[WaveletPsi[BattleLemarieWavelet[2], x]], {x, -5, 5}, PlotRange -> All, GridLines -> {{1 / 2}, None}, GridLinesStyle -> Directive[Orange, Thick]]For odd order n, scaling function is symmetrical about 0:
Plot[Evaluate[WaveletPhi[BattleLemarieWavelet[3], x]], {x, -5, 5}, PlotRange -> All, GridLines -> {{0}, None}, GridLinesStyle -> Directive[Orange, Thick]]For odd order n, wavelet function is symmetrical about 1/2:
Plot[Evaluate[WaveletPsi[BattleLemarieWavelet[3], x]], {x, -5, 5}, PlotRange -> All, GridLines -> {{1 / 2}, None}, GridLinesStyle -> Directive[Orange, Thick]]
satisfies the recursion equation
:
ϕ = WaveletPhi[BattleLemarieWavelet[3]];a = WaveletFilterCoefficients[BattleLemarieWavelet[3], "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, -8, 8}, PlotRange -> All],
Plot[{Total@scalet[x, ϕ, a]}, {x, -8, 8}, PlotRange -> All]}
satisfies the recursion equation
:
ϕ = WaveletPhi[BattleLemarieWavelet[3]];b = WaveletFilterCoefficients[BattleLemarieWavelet[3], "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, -8, 8}, PlotRange -> All], Plot[Total@wavelet[x, ϕ, b], {x, -8, 8}, 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[Evaluate[Abs[h[BattleLemarieWavelet[3, 20], ω]]], {ω, -π, π}, Ticks -> {{-π, -(π/2), 0, (π/2), π}, Automatic}, AxesLabel -> {ω, Abs[H[ω]]}]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 highpass filter:
Plot[Evaluate[Abs[g[BattleLemarieWavelet[3, 20], ω]]], {ω, -π, π}, 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]}]]fh[wav_, ω_, j_] := Abs[Product[h[wav, (ω/2^i)], {i, j}]]Plot[Evaluate[fh[BattleLemarieWavelet[3, 20], ω, 10]], {ω, -2Pi, 2Pi}, PlotRange -> All, Ticks -> {Range[-2Pi, 2Pi, 2Pi / 3], {1}},
AxesLabel -> {ω, Abs[ Overscript[ϕ, ^ ][ω]]}]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[Evaluate[fg[BattleLemarieWavelet[3, 20], ω, 10]], {ω, -10, 10}, PlotRange -> All,
AxesLabel -> {ω, Abs[ Overscript[ψ, ^ ][ω]]}]Possible Issues (1)
BattleLemarieWavelet is restricted to n less than 15:
WaveletPhi[BattleLemarieWavelet[16]]BattleLemarieWavelet is not defined when n is not a positive machine integer:
WaveletPhi[BattleLemarieWavelet[2 + I]]Neat Examples (2)
Plot translates and dilations of scaling function:
ϕ[x_, j_, k_] := 2^j / 2WaveletPhi[BattleLemarieWavelet[3], 2^jx - 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 / 2WaveletPsi[BattleLemarieWavelet[3], 2^jx - k]Plot[Evaluate@Table[ψ[x, j, 0], {j, 0, 2}], {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]Tech Notes
Related Guides
History
Text
Wolfram Research (2010), BattleLemarieWavelet, Wolfram Language function, https://reference.wolfram.com/language/ref/BattleLemarieWavelet.html.
CMS
Wolfram Language. 2010. "BattleLemarieWavelet." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BattleLemarieWavelet.html.
APA
Wolfram Language. (2010). BattleLemarieWavelet. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BattleLemarieWavelet.html
BibTeX
@misc{reference.wolfram_2026_battlelemariewavelet, author="Wolfram Research", title="{BattleLemarieWavelet}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/BattleLemarieWavelet.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_battlelemariewavelet, organization={Wolfram Research}, title={BattleLemarieWavelet}, year={2010}, url={https://reference.wolfram.com/language/ref/BattleLemarieWavelet.html}, note=[Accessed: 13-June-2026]}