Example 2 Orthonormal Multiwavelets d=2, r=3 

 

> restart; 1; read
 

> `assign`(d, 3); 1; `assign`(r, 2); 1
 

 

`assign`(d, 3)
`assign`(r, 2) (4.4.1)
 

> `assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
`assign`(poly, convert([[`+`(`/`(`*`(`+`(`-`(`/`(47, 540)), `*`(`/`(7, 540), `*`(`^`(41, `/`(1, 2)))))), `*`(`^`(z, 4))), `/`(1, 3), `/`(`*`(`+`(`-`(`/`(2, 135)), `-`(`*`(`/`(1, 270), `*`(`^`(41, `/`(...
 

`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
`assign`(poly, Matrix(%id = 165146576))
(4.4.2)
 

> `assign`(Pa, D1Polyphase(poly, d, sqrt(d))); -1
 

> simplify(Typesetting:-delayDotProduct(Pa, subs(z = `/`(1, `*`(z)), Transpose(Pa)))); 1
 

Matrix(%id = 192550148) (4.4.3)
 

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

`assign`(U0, Matrix(%id = 151247564)) (4.4.4)
 

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

> SYM(Pa1); 1
 

Matrix(%id = 193532164) (4.4.5)
 

> D1Support(Pa1); 1
 

Vector[column](%id = 184515188) (4.4.6)
 

> Pa1[1, 1 .. 6]; 1
 

Vector[row](%id = 153636008)
Vector[row](%id = 153636008)
Vector[row](%id = 153636008)
Vector[row](%id = 153636008)
Vector[row](%id = 153636008)
(4.4.7)
 

> `assign`(D0, DiagonalMatrix([sqrt(3), `*`(sqrt(3), `*`(sqrt(2))), `*`(sqrt(3), `*`(sqrt(2))), sqrt(3), `*`(sqrt(3), `*`(sqrt(2))), `*`(sqrt(3), `*`(sqrt(2)))])); 1
`assign`(D0, DiagonalMatrix([sqrt(3), `*`(sqrt(3), `*`(sqrt(2))), `*`(sqrt(3), `*`(sqrt(2))), sqrt(3), `*`(sqrt(3), `*`(sqrt(2))), `*`(sqrt(3), `*`(sqrt(2)))])); 1
 

`assign`(D0, Matrix(%id = 153702060)) (4.4.8)
 

> simplify(Typesetting:-delayDotProduct(Pa1, subs(z = `/`(1, `*`(z)), Transpose(Pa1)))); 1
 

Matrix(%id = 194596164) (4.4.9)
 

> `assign`(res, D1MatOrthExtMatQ(Pa1, D0)); -1
 

> `assign`(U1, D1CoeffSimp(res[1])); -1; `assign`(D1, res[2]); -1
 

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

`assign`(Pa2, Matrix(%id = 165606404)) (4.4.10)
 

> `assign`(U2, Matrix(6, 6, IdentityMatrix(6))); -1; `assign`(U2[[1, 2], [1, 2]], `<|>`(`<,>`(0, 1), `<,>`(1, 0))); -1
 

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

`assign`(Pa3, Matrix(%id = 168874412)) (4.4.11)
 

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

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

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

Matrix(%id = 168872124) (4.4.12)
 

> `assign`(b1, D1CoeffSimp(filters[3 .. 4, 1 .. 2])); 1
 

`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
`assign`(b1, Matrix(%id = 191085264))
(4.4.13)
 

> `assign`(b2, D1CoeffSimp(filters[5 .. 6, 1 .. 2])); 1
 

`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
`assign`(b2, Matrix(%id = 190904792))
(4.4.14)
 

>