The question is why can data be recovered perfectly from a discrete wavelet transform with a Haar wavelet but not with some Battle-Lemarie wavelets?
A simple example with the HaarWavelet[]:
data3 = Table[Random[Real, 10], {k, 30}]
{0.702135, 4.9963, 4.89421, 9.69088, 0.396075, 0.781406,
6.41113, 6.82329, 6.51081, 7.93571, 9.42005, 9.27458, 4.27116,
2.14756, 6.01304, 7.76658, 7.86689, 9.94061, 7.02273, 6.3883,
7.34664, 4.71568, 4.7454, 5.27213, 6.64451, 9.71938, 9.85119,
5.58125, 6.24843, 8.93798}
re2 = DiscreteWaveletTransform[data3, HaarWavelet[], WorkingPrecision -> MachinePrecision]
InverseWaveletTransform[re2]
{0.702135, 4.9963, 4.89421, 9.69088, 0.396075, 0.781406, 6.41113,
6.82329, 6.51081, 7.93571, 9.42005, 9.27458, 4.27116, 2.14756,
6.01304, 7.76658, 7.86689, 9.94061, 7.02273, 6.3883, 7.34664,
4.71568, 4.7454, 5.27213, 6.64451, 9.71938, 9.85119, 5.58125,
6.24843, 8.93798}
And now the same with a Battle-Lemarie wavelet:
data3 = Table[Random[Real, 10], {k, 30}]
{4.57767, 9.00061, 4.69697, 2.98705, 0.880157, 9.86854,
4.00198, 4.89448, 3.5703, 5.21159, 0.666989, 2.34296, 9.20806,
6.2718, 4.95437, 4.33022, 3.7734, 3.56578, 1.39766, 2.00157, 9.25936,
5.37673, 2.39729, 6.44292, 4.68169, 6.37612, 7.70032, 3.45587,
3.80153, 6.50759}
re2 =
DiscreteWaveletTransform[data3, BattleLemarieWavelet[1, 10],
WorkingPrecision -> MachinePrecision]
InverseWaveletTransform[re2]
{4.22627, 11.0403, 4.47468, 1.00538, 2.57364, 12.6589,
2.97526, 2.00396, 0.903247, 4.00951, 1.49102, 0.706097, 7.48314,
8.84186, 6.57139, 2.88699, 1.16318, 2.09853, 2.98261, 1.89232,
7.64724, 7.39258, 5.25025, 6.75834, 5.33315, 8.11338, 7.85654,
3.73812, 5.31351, 6.48029}
I know I can increase the precision by taking a higher value then 10 within the calculation of the Battle-Lemarie wavelet, but since I'm limited in this case by 30 data points, I can't get a perfect reconstruction?
Thanks for some help :).