Example 2 (Orthonomral Multiwavelets): Dilation d = 2. Multiplicity r = 2. Support = [-1,2].  

 

> restart; 1; read
 

> `assign`(d, 2); 1
 

`assign`(d, 2) (3.4.1)
 

> `assign`(poly, convert([[`+`(`/`(3, 10), `/`(`*`(`/`(3, 10)), `*`(z))), `+`(`/`(`*`(`/`(2, 5), `*`(`^`(2, `/`(1, 2)))), `*`(z)))], [`+`(`-`(`*`(`/`(1, 40), `*`(`^`(2, `/`(1, 2)), `*`(`^`(z, 2))))), `*...
`assign`(poly, convert([[`+`(`/`(3, 10), `/`(`*`(`/`(3, 10)), `*`(z))), `+`(`/`(`*`(`/`(2, 5), `*`(`^`(2, `/`(1, 2)))), `*`(z)))], [`+`(`-`(`*`(`/`(1, 40), `*`(`^`(2, `/`(1, 2)), `*`(`^`(z, 2))))), `*...
 

`assign`(poly, Matrix(%id = 165982556)) (3.4.2)
 

> D1Support(poly); 1
 

Vector[column](%id = 166102340) (3.4.3)
 

> D1GetSymCenter(poly, d); 1
D1GetSymCenter(poly, d); 1
D1GetSymCenter(poly, d); 1
 

Vector[column](%id = 166357380) (3.4.4)
 

> `assign`(Pa, D1Polyphase(poly, d, sqrt(d))); 1; simplify(Typesetting:-delayDotProduct(Pa, subs(z = `/`(1, `*`(z)), Transpose(Pa)))); 1
`assign`(Pa, D1Polyphase(poly, d, sqrt(d))); 1; simplify(Typesetting:-delayDotProduct(Pa, subs(z = `/`(1, `*`(z)), Transpose(Pa)))); 1
`assign`(Pa, D1Polyphase(poly, d, sqrt(d))); 1; simplify(Typesetting:-delayDotProduct(Pa, subs(z = `/`(1, `*`(z)), Transpose(Pa)))); 1
 

 

`assign`(Pa, Matrix(%id = 208094072))
Matrix(%id = 168552396) (3.4.5)
 

> `assign`(U0, D1SymPolyphaseMat(poly, d)); 1
 

`assign`(U0, Matrix(%id = 168040164)) (3.4.6)
 

> `assign`(Pa1, collect(Typesetting:-delayDotProduct(Pa, U0), z)); 1
 

`assign`(Pa1, Matrix(%id = 169735516)) (3.4.7)
 

> D1Support(Pa1); 1
 

Vector[column](%id = 168039876) (3.4.8)
 

> `assign`(res, D1MatOrthExtVec(Pa1[2, 1 .. 4])); 1
 

`assign`(res, [Matrix(%id = 173801472), Matrix(%id = 168039492)]) (3.4.9)
 

> `assign`(U1, collect(Typesetting:-delayDotProduct(res[1], res[2]), z)); 1
 

`assign`(U1, Matrix(%id = 168039204)) (3.4.10)
 

> `assign`(Pa2, collect(Typesetting:-delayDotProduct(Pa1, U1), z)); 1
 

`assign`(Pa2, Matrix(%id = 168035364)) (3.4.11)
 

> `assign`(E, Matrix(4, IdentityMatrix(4))); -1; `assign`(E[[2, 3], [2, 3]], `<|>`(`<,>`(0, 1), `<,>`(1, 0))); -1; `assign`(E2, Matrix(4, IdentityMatrix(4))); -1; `assign`(E2[[1, 2], [1, 2]], `<|>`(`<,>...
`assign`(E, Matrix(4, IdentityMatrix(4))); -1; `assign`(E[[2, 3], [2, 3]], `<|>`(`<,>`(0, 1), `<,>`(1, 0))); -1; `assign`(E2, Matrix(4, IdentityMatrix(4))); -1; `assign`(E2[[1, 2], [1, 2]], `<|>`(`<,>...
`assign`(E, Matrix(4, IdentityMatrix(4))); -1; `assign`(E[[2, 3], [2, 3]], `<|>`(`<,>`(0, 1), `<,>`(1, 0))); -1; `assign`(E2, Matrix(4, IdentityMatrix(4))); -1; `assign`(E2[[1, 2], [1, 2]], `<|>`(`<,>...
 

`assign`(U2, Matrix(%id = 210370560)) (3.4.12)
 

> `assign`(Pa3, Typesetting:-delayDotProduct(Pa2, U2)); 1
 

`assign`(Pa3, Matrix(%id = 184355732)) (3.4.13)
 

> `assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U0, U1), U2))), z)); 1
 

`assign`(Pe, Matrix(%id = 197733284)) (3.4.14)
 

> `+`(Pe[1 .. 2, 1 .. 4], `-`(Pa)); 1
 

Matrix(%id = 175460312) (3.4.15)
 

> `assign`(filters, D1Polyphase2Mask(Pe, d, `/`(1, `*`(sqrt(d))))); 1
 

`assign`(filters, Matrix(%id = 208275668)) (3.4.16)
 

> `+`(filters[1 .. 2, 1 .. 2], `-`(poly)), SYM(poly); 1
 

Matrix(%id = 171701292), Matrix(%id = 170400524) (3.4.17)
 

> `assign`(b, filters[3 .. 4, 1 .. 2]); 1; SYM(b); 1
 

 

`assign`(b, Matrix(%id = 165408548))
Matrix(%id = 194905620) (3.4.18)
 

>