Re: Mathematica Wavelet-Explorer Question: Inverse Wavelet Transform on a subset of the coefficients

• To: mathgroup at smc.vnet.net
• Subject: [mg23023] Re: Mathematica Wavelet-Explorer Question: Inverse Wavelet Transform on a subset of the coefficients
• From: Oscar Stiffelman <oscar at internap.com>
• Date: Tue, 11 Apr 2000 23:18:40 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```I think I found the answer.  Below, I construct a table comparing the
difference between the two approaches.

compareIWT[wt_, filter_, numDropped_] := (
wt1 =
MapIndexed[(If[Length[wt] - First[#2] < numDropped, 0*#1, #1]) &,
wt];
wt2 = Take[wt, Length[wt] - numDropped];
iwt1 = InverseWaveletTransform[wt1, filter];
iwt2 = InverseWaveletTransform[wt2, filter];
Mean[iwt2]/Mean[iwt1]
)

Table[compareIWT[wt4, D4, i], {i, 1, 10}]

{1.41421, 2., 2.82843, 4., 5.65685, 8., 11.3137, 16., 22.6274, 32.}

This is just (sqrt(2))^numDropped.  I guess I will just use this scaling
factor-- I assume it will work for other filter lengths and types of
filters.

-- Oscar

On Mon, 10 Apr 2000, Oscar Stiffelman wrote:

> Hi,
>
> I am using the Wavelet Explorer package in Mathematica, and I noticed
> something somewhat peculiar.  If I perform an inverse wavelet transform on
> a subset of the coefficients, the mean is shifted up, but if I instead
> zero out those coefficients (rather than truncating), then the mean
> remains the same:
>
> In[1]:= <<Wavelets`Wavelets`
>
> In[2]:= randomWalk = NestList[(# + Random[Real, {-1, 1}])&, 0, 1023];
>
> In[3]:= wt = WaveletTransform[randomWalk, DaubechiesFilter[4]];
>
> In[4]:= Length /@ wt
>
> Out[4]= {4, 4, 8, 16, 32, 64, 128, 256, 512}
>
> In[5]:= iwt1 = InverseWaveletTransform[wt*{1,1,1,1,1,1,1,0,0},
> DaubechiesFilter[4]];
>
>
> In[6]:= Mean[iwt1]
>
> Out[6]= 11.9505
>
> In[7]:= Mean[randomWalk]
>
> Out[7]= 11.9505
>
> In[8]:=  iwt2 = InverseWaveletTransform[Take[wt, Length[wt]-2],
> DaubechiesFilter[4]];
>
> In[9]:= Mean[iwt2]
>
> Out[9]= 23.9011
>
>
>
> Can anybody explain this?  The curves are basically the same shape
> (but at different resolutions).  How can I consistently scale the
> truncated inverse wavelet transform so that it will always be correct?
>
> Thanks,
>
> Oscar Stiffelman
>
>

```

• Prev by Date: Re: Mod Bessel function bug ?
• Next by Date: Re: Re: making a column into a list
• Previous by thread: Mathematica Wavelet-Explorer Question: Inverse Wavelet Transform on a subset of the coefficients