Kurt TeKolste (tekolste.kurt@ist.vf.mmc.com) Guest

Posted: Fri Dec 06, 2002 9:36 am Subject: Answer: Parametrization of Biorthogonal Wavelets (WD 4.10 #24)




Answer: Parametrization of Biorthogonal Wavelets (WD 4.10 #24)
A recent note from Thomas Sledge in this listserver prompted me to
look up some work that I did a few years ago. What I discovered at
that time was a way to generate all compactlysupported real valued
wavelets.
The generator is ridiculously easy to code, and I think that the
parameterization is suitable for doing the analysis necessary to
determine best wavelets for certain conditions.
The algorithms for finding dilation coefficients from my parameters
and vice versa follow.
Preliminary Definition
The construction hinges an idea which I call a "pivot." If {a_i  i
in Z} is a series, the "pivot of a through alpha at k," is {b_i  i in
Z} where b_i is determined by the formula: b_i = a_i * cos(alpha) +
(1)^i * a_(2*k+1i) * sin(alpha).
Dilation coeffiencets from parameters
Wavelets of "dimension" d (with dilation coefficents zero outside of
0, ..., 2d+1) are parameterized by d angles, alpha_1, alpha_2, ...,
alpha_d. To find the dilation coefficients, you proceed as follows.
Let alpha_0 = pi/2  (alpha_1 + ... + alpha_d). Let a_0,0 =
cos(alpha_0/2), a_0,1 = sin(alpha_0/2). For j = 0, ..., d1 let a_j+1
= {a_(j+1,i)  i in Z} be the series obtained from a_j = { a_(j,i)  i
in Z} by pivoting through alpha_(j+1) at j+1. Then a_d is a valid set
of dilation coefficients.
Segue
I do not think that this mapping is 11: there seem to be multiple
parameterizations for the same set of dilation coefficients. However,
it is onto, which we see next.
Parameters from Dilation Coefficients
This construction generates all the possible dilation coefficients.
This is demonstrated by showing how to find the alphas from the
dilation coefficients. We assume, without loss of generality, that it
is not the case that both a_0 and a_1 are zero and that a_i = 0 for i
< 0 and i > 2n+1. We find n angles as follows.
Let alpha_n = 2*arctan(a_2n+1/a_0) if a_0 <> 0 and alpha_n =
2*arctan(a_2n/a_1) if a_0 = 0. Pivot the original sequence by
alpha_n at n. This yields a series with support in 0, ... , 2n1.
Repeat for the shorter set of coefficients until you have alpha_0 =
2*arctan(a_1/a_0).
The resulting alpha_i will return the initial dilation coefficents via
the construction described above.
Thus, the zero dimensional wavelet is given by <cos(alpha_0/2),
sin(alpha_0/2)> where alpha_0 = pi/2.
The one dimensional wavelets are desribed by:
<cos(alpha0/2)cos(alpha1/2), sin(alpha0/2)cos(alpha1/2),
sin(alpha0/2)sin(alpha1/2), cos(alpha0/2)sin(alpha1/2)> with alpha0 +
alpha1 = pi/2.
Since this is a bit tiresome, we use an obvious encoding so that the
0wavelets are <c0, s0> the 1wavelets are <c0*c1, s0*c1, s0*s1,
c0*s1> Continuing, we have the 2wavelets as <c0*c1*c2, s0*c1*c2,
s0*s1*c2  c0*s1*c2, c0*s1*c2  s0*s1*s2, s0*c1*s2, c0*c1*s2> with
alpha0 + alpha1 + alpha2 = pi/2.
Colloquially, you get the next series by a) multiplying the current
series by cos(alpha), b) reversing the current series, alternating the
signs, multiplying by sin(alpha), and sliding it over two to the right
and then c) adding the two together. This is the basis of the
computer algorithm since it allows you to need to compute each cosine
and sine just once.
I wish I had an elegant Fourier analysis justification for this
construction, but I do not  it is just a down and dirty discrete
algorithm as far as I have been able to work it.
I have built a "screensaver" which allows the user to wander around
the wavelet space of their choice up to dimension 150 (302
coefficients in the filters). It will also move regularly through the
collection of all wavelets or wander with randomly chosen
displacements.
Unfortunately, there is an error in the graphing routine which flips
the wavelet now and then. Since I no longer have the Pascal compiler
loaded it is too much trouble to fix it. If, with this caveat, you
would like a executable version of this MSDOS program sent via MIME,
please contact me via email.
Kurt TeKolste <tekolste.kurt@ist.vf.mmc.com>
Phone : 6109648791 
