Next: Wavelets of different orders
Up: WAVELET TRANSFORM OF A
Previous: The butterfly
In the section ``Wavelet transform of a vector'' I
assumed the matrix C to be orthogonal. Additionally,
I stated lowpass and highpass characteristics of the
filter coefficients c_{k}. In this chapter I will
derive the simple nonlinear equations for c_{k}
which guarantee these conditions.
To be orthogonal the matrix C in equation (1) multiplied by
its transpose in equation (2) has to yield a unit matrix.
The multiplication provides the following orthogonality relation for
the wavelet filter coefficients c_{k}:

c_{0}^{2} + c_{1}^{2} + c_{2}^{2} + c_{3}^{2} = 2

(4) 

c_{0} c_{2} + c_{1} c_{3} = 0

(5) 
To determine the four coefficients,
two additional relations are required. The conditions

c_{0}  c_{1} + c_{2}  c_{3} = 0

(6) 

0 c_{0}  1 c_{1} + 2 c_{2}  3 c_{3} = 0

(7) 
ensure that any inner product of (c_{0},c_{1},c_{2},c_{3}) and a series
k_{1} (1,1,1,1) + k_{2} (1,2,3,4) yields .
This annihilation is called an ``approximation condition of polynomial
order 1'' or ``the vanishing of the zeroth and first momentum.''
It is important to note that these rejected polynomials are the loworder and
therefore smooth polynomials.
These local rejections justify the imaginative visualisation of the odd
row multiplications as
local highpass filtering. The even row multiplication destroys
highfrequency events by weighted adding.
I have coded the conditions
in a mathematica script coef.ma^{},
which solves numerically for the coefficient set c_{k}.
(* coef.ma *)
(* number of coefficients *)
(* tested for n=4 and n=6 *)
n = 4 ;
nh = n / 2 ;
(* definitions kronecker & Power *)
kron[i_,j_] := If[ i == j, 1, 0] ;
Unprotect[Power] ;
Power[0,0] = 1 ;
Protect[Power] ;
(* approximation condition *)
Do[aus[i] = Sum[(1)^k (nk)^(i1) c[k], {k,1,n}] == 0, {i,1,nh}]
(* orthogonality condition *)
Do[aus[i+nh] = Sum[ c[k] c[k2(i1)] , {k,2(i1)+1,n}] == kron[i,1], {i,1,nh}]
(* solving Equation *)
eqsys = Table[aus[i],{i,1,n}] ;
coef = Table[c[i],{i,1,n}] ;
sol = N[Solve[eqsys,coef]] ;
(* use NSolve[] for numerical results *)
sol >>> sol.ma ;
The conditions (4), (5), (6), and (7)
determine the coefficients
c_{k}'s amplitude but not their phase spectrum.
Daubechies defines
her wavelets as the minimum phase solution to these equations.
The 4point wavelet coefficients are
 
(8) 
 
(9) 
 
(10) 
 
(11) 
Next: Wavelets of different orders
Up: WAVELET TRANSFORM OF A
Previous: The butterfly
Stanford Exploration Project
11/18/1997