# Mathematica doesn't seem to be able to compute the Fourier transform of the Haar orthonormal basis over $L^2(\mathbb{R})$

Consider

F[x_, n_, m_] := 2^{n/2}*WaveletPsi[HaarWavelet[], 2^{n}*x - m]


A paper I am reading uses a different convention of the Fourier transform than Mathematica's default setting, so I decided to compute a certain Fourier transform manually with the integrate command. However, when I try to run

FullSimplify[Integrate[F[x, n, m]*Exp[-I*w*x], {x, -Infinity, Infinity},Assumptions -> {Element[{n, m}, Integers], Element[w, Reals]}]]


the only output I get is Mathematica inserting the definition of F to the integral and LaTeXfying the Element commands. This is a bit odd since the Transform most certainly exists. What is going on?

Edit: The output I get is

{Integrate[2^(n/2) E^(-I w x) ( \!$$\* TagBox[GridBox[{ {"\[Piecewise]", GridBox[{ { RowBox[{"-", "1"}], RowBox[{ FractionBox["1", "2"], "<", RowBox[{"{", RowBox[{ RowBox[{"-", "m"}], "+", RowBox[{ SuperscriptBox["2", "n"], " ", "x"}]}], "}"}], "<", "1"}]}, {"1", RowBox[{"0", "<", RowBox[{"{", RowBox[{ RowBox[{"-", "m"}], "+", RowBox[{ SuperscriptBox["2", "n"], " ", "x"}]}], "}"}], "<", FractionBox["1", "2"]}]}, {"0", TagBox["True", "PiecewiseDefault", AutoDelete->True]} }, AllowedDimensions->{2, Automatic}, Editable->True, GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}}, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{1.}}}, GridBoxSpacings->{"Columns" -> { Offset[ 0.27999999999999997], { Offset[0.84]}, Offset[0.27999999999999997]}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}}, Selectable->True]} }, GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}}, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{1.}}}, GridBoxSpacings->{"Columns" -> { Offset[ 0.27999999999999997], { Offset[0.35]}, Offset[0.27999999999999997]}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}}], "Piecewise", DeleteWithContents->True, Editable->False, SelectWithContents->True, Selectable->False, StripWrapperBoxes->True]$$ ), {x, -\[Infinity], \[Infinity]},
Assumptions -> (n | m) \[Element] Integers && w \[Element] Reals]}

• First, you shouldn't use curly brackets because they represent a List, use round brackets (). Second, you should use FourierTransform, not Integrate (there are several question on StackExchange about this). Third, it works if you explicitly specify m and n, for example: f[x_, n_, m_] := 2^(n/2)*WaveletPsi[HaarWavelet[], 2^n*x - m]; FourierTransform[f[x, n, m] /. {n -> 3, m -> 2}, x, w] returns (2 I E^((I w)/4) (-1 + E^((I w)/16))^2)/(Sqrt[\[Pi]] w) Mar 10 at 17:43
• @Domen I changed the curly brackets to to round brackets, but the issue does not go away. I am just curios on knowing why Mathematica cannot calculate the integral when even I can do it for generic $m,n$ with pen and paper. Lastly, like I said, I am using the regular integrate because of the differing convention. Mar 10 at 17:47
• Why not change the default Fourier Transform setting? Mar 10 at 18:56

Without loss of generality we may assume m==0 (see the translation property). Then in 13.2 on Windows 10 both

m=0;1/Sqrt[2*Pi]*Integrate[ 2^(n/2)*WaveletPsi[HaarWavelet[], 2^n*x - m]*
Exp[I*w*x], {x, -Infinity, Infinity},
Assumptions -> {Element[{n, m}, Integers], Element[w, Reals]}]


and

m = 0; FourierTransform[2^(n/2)*WaveletPsi[HaarWavelet[], 2^n*x - m], x, w,
Assumptions -> n \[Element] Integers]


result in

(I 2^(-(1/2) + n/2) (-1 + E^(I 2^(-1 - n) w))^2)/(Sqrt[\[Pi]] w)