Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities
Services
Author
Printable PDF file
I. Basic math.
II. Pricing and Hedging.
III. Explicit techniques.
IV. Data Analysis.
V. Implementation tools.
VI. Basic Math II.
VII. Implementation tools II.
1. Calculational Linear Algebra.
2. Wavelet Analysis.
A. Elementary definitions of wavelet analysis.
B. Haar functions.
C. Multiresolution analysis.
D. Orthonormal wavelet bases.
E. Discrete wavelet transform.
F. Construction of MRA from scaling filter or auxiliary function.
G. Consequences and conditions for vanishing moments of wavelets.
H. Existence of smooth compactly supported wavelets. Daubechies polynomials.
I. Semi-orthogonal wavelet bases.
a. Biorthogonal bases.
b. Riesz bases.
c. Generalized multiresolution analysis.
d. Dual generalized multiresolution analysis.
e. Dual wavelets.
f. Orthogonality across scales.
g. Biorthogonal QMF conditions.
h. Vanishing moments for biorthogonal wavelets.
i. Compactly supported smooth biorthogonal wavelets.
j. Spline functions.
k. Calculation of spline biorthogonal wavelets.
l. Symmetric biorthogonal wavelets.
J. Construction of (G)MRA and wavelets on an interval.
3. Finite element method.
4. Construction of approximation spaces.
5. Time discretization.
6. Variational inequalities.
VIII. Bibliography
Notation. Index. Contents.

Symmetric biorthogonal wavelets.


otivation for this section is explained in the remarks ( Unsuitability of spline wavelets ), ( Unsuitability of spline wavelets 2 ).

We seek a symmetric factorization MATH , MATH of the expression MATH where the polynomial $P_{n-1}$ that has to satisfy MATH and was constructed in the proof of the proposition ( Existence of smooth compactly supported wavelets ): MATH

Proposition

(Biorthogonal symmetry 1) Let MATH where MATH Then MATH is a polynomial with the following properties:

1. MATH

2. MATH ,

3. MATH .

Proof

We make the change MATH in the expression $\left( \&\right) $ . We have MATH The LHS of $\left( \&\right) $ becomes MATH where MATH is a polynomial of $x$ , (see MATH ). The expression $\left( \#\right) $ leads to the following symmetry: MATH MATH thus MATH In addition, directly from MATH , MATH

Proposition

(Biorthogonal symmetry 2) Let MATH be a polynomial. The following conditions are equivalent:

1. There exists an $n\in\QTR{cal}{Z}$ such that MATH .

2. For the same $n$ , MATH , MATH .

Proof

Direct verification.

Proposition

(Biorthogonal symmetry 3) Any polynomial of the form MATH satisfies MATH

Proof

Direct verification.

Summary

(Construction of symmetric biorthogonal wavelets) The functions $m_{0}$ , $\tilde{m}_{0}$ of the proposition ( Existence of biorthogonal compactly supported wavelets ) may be constructed according to the following procedure.

1. Select a number MATH .

2. Form a polynomial MATH

3. Find roots MATH of MATH .

4. Set $m$ to multiplicity of the root $-1$ .

5. Form a polynomial MATH

6. Distribute the terms MATH , MATH , MATH between $m_{0}$ and $\tilde{m}_{0}$ to form the factorization MATH and normalize MATH to have MATH

The steps 1-5 may be executed using the following Mathematica script:

n=5

CC[k_, n_] := Binomial[n, k]

Pnm1[n_, y_] := Expand[Sum[CC[k, 2*n - 1]*y^k*(1 - y)^(n - 1 - k), {k, 0, n - 1}]]

Pin[n_,x_]:=x^(2*n-1)*(1/2+1/4*(x+1/x))^n*Pnm1[n,1/2-1/4*(x+1/x)]

F[n_, x_] := Simplify[Expand[Pin[n, x]]]

eq = F[n, x]

sol=NSolve[eq == 0, {x}]

sol1 = Map[Function[x, x[[1]][[2]]], sol]

m=Length[Select[sol1, Function[x, x == -1.]]]

sol2 = Select[sol1, Function[x, x != -1.]]

takePairs = Function[L,

Module[{x = L, y, z, r},

r = {};

While[Length[x] > 0,

y = First[x];

x = Drop[x, 1];

z = Select[x, Function[a, Abs[a - 1/y] < 0.000000001]][[1]];

x = Select[x, Function[a, a != z]];

r = Append[r, y];

];

r

]

]

xk=takePairs[sol2]

K=Length[xk]

Pmk=(x+1)^m*Product[(x-xk[[k]])*(x-1/xk[[k]]),{k,1,K}]

a = D[Pmk, {x, m + 2*K}]/D[eq, {x, m + 2*K}]

{n,m,K,xk}

Remark

Experimentation with the above procedure shows that $m=2n$ . Hence, one way to execute the step 6 is to set MATH The factors $x^{-n+1}$ , $x^{-n}$ result in shift of indexing for the filters MATH , MATH . These are not relevant. The $c_{1},c_{2}$ are normalization constants.

Unfortunately, it does not fully work for every $n$ . This is not just because $K$ has to be even to obtain MATH but also because some of the numbers MATH are complex and we want real filters MATH , MATH .

For example, if $n=4$ then $K=3$ and MATH where MATH There is no way to allocate terms so that $\phi,\tilde{\phi}$ have supports of equal length, $\psi,\tilde{\psi}$ have the same number of vanishing moments and all the functions are real-valued.

However, for $n=5$ we have $K=4$ and MATH where MATH and we achieve our goal: the expression MATH MATH is real valued and the functions MATH are both composed from the same number of terms (giving rise to filters MATH of equal length) and have terms MATH of equal integer power (giving rise to the same number of vanishing moments for $\psi$ and $\tilde{\psi}$ ).

We also have favorable situation for $n=9,13,...$

Remark

The polynomial MATH has even degree for every $n$ . For this reason we achieve supports of $\phi,\tilde{\phi}$ of equal length and real valued functions MATH for every $n$ . However, for the described factorization procedure, we also get the same number of vanishing moments of $\psi,\tilde{\psi}$ only for $n=5,9,13,...$

The following continuation of Mathematica script calculates the MATH according to the last remarks. The result for n=4 agrees with [Walnut] , page 326, "The 8/8 filter pair".

takePairs2 = Function[L,

Module[{x=L,y,z,r,c},

r={};

c={};

While[Length[x]>0,

y=First[x];

x=Drop[x,1];

If[Im[y]==0,r=Append[r,y],c=Append[c,y]];

];

x=c;

c={};

While[Length[x]>0,

y=First[x];

x=Drop[x,1];

z=Select[x,Function[a,Abs[a-Conjugate[y]]<0.000000001]][[1]];

x=Select[x,Function[a,a!=z]];

c=Append[c,y];

];

{r,c}

]

]

xx=takePairs2[xk]

makeMs=Function[{roots,m},

Module[{reals=roots[[1]],complex=roots[[2]],y,z,tom0,toM0,m0,M0,d1,d2},

Clear[x];

m0=1;

M0=1;

tom0=True;

While[Length[reals]>0,

y=First[reals];

reals=Drop[reals,1];

z=(x-y)*(x-1/y);

If[tom0,m0=m0*z,M0=M0*z];

If[tom0,tom0=False,tom0=True];

];

toM0=True;

While[Length[complex]>0,

y=First[complex];

complex=Drop[complex,1];

z=(x-y)*(x-1/y)*(x-Conjugate[y])*(x-Conjugate[1/y]);

If[toM0,M0=M0*z,m0=m0*z];

If[toM0,toM0=False,toM0=True];

];

d1=Exponent[m0,x];

d2=Exponent[M0,x];

m0=m0*(x+1)^(m/2-(d1-d2)/2);

M0=M0*(x+1)^(m/2+(d1-d2)/2);

m0=m0/Re[m0 /. x->1];

M0=M0/Re[M0 /. x->1];

{m0,M0}

]

]

mm=makeMs[xx,m]

h=Re[N[CoefficientList[mm, x]*Sqrt[2]]]





Notation. Index. Contents.


















Copyright 2007