Example 1 (Orthonormal Wavelets) : Dilation d = 3. Multiplicity r = 1. Support = [-4,4].  

 

> read
 

> with(LinearAlgebra); -1
 

> `assign`(d, 3); 1
 

`assign`(d, 3) (3.3.1)
 

> `assign`(poly, `+`(`-`(`/`(`+`(`*`(81, `*`(`^`(z, 4)))))), `-`(`/`(`*`(`/`(4, 81)), `*`(`^`(z, 3)))), `/`(35, 81), `/`(`*`(`/`(20, 81)), `*`(z)), `/`(`*`(`/`(8, 81)), `*`(`^`(z, 2))), `-`(`*`(`/`(1, 8...
`assign`(poly, `+`(`-`(`/`(`+`(`*`(81, `*`(`^`(z, 4)))))), `-`(`/`(`*`(`/`(4, 81)), `*`(`^`(z, 3)))), `/`(35, 81), `/`(`*`(`/`(20, 81)), `*`(z)), `/`(`*`(`/`(8, 81)), `*`(`^`(z, 2))), `-`(`*`(`/`(1, 8...
 

`assign`(poly, `+`(`-`(`/`(`*`(`/`(1, 81)), `*`(`^`(z, 4)))), `-`(`/`(`*`(`/`(4, 81)), `*`(`^`(z, 3)))), `/`(35, 81), `/`(`*`(`/`(20, 81)), `*`(z)), `/`(`*`(`/`(8, 81)), `*`(`^`(z, 2))), `-`(`*`(`/`(1... (3.3.2)
 

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

`assign`(Pa, Vector[row](%id = 176835788))
`assign`(Pa, Vector[row](%id = 176835788))
(3.3.3)
 

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

Vector[column](%id = 182478384) (3.3.4)
 

> `assign`(res, D1SymPolyphaseVec(poly, d)); -1; `assign`(Pa1, res[1]); 1; `assign`(U1, res[2]); 1
 

 

`assign`(Pa1, Vector[row](%id = 165911220))
`assign`(Pa1, Vector[row](%id = 165911220))
`assign`(U1, Matrix(%id = 184183676)) (3.3.5)
 

> simplify(`+`(Typesetting:-delayDotProduct(Pa, U1), `-`(Pa1))); 1
 

Vector[row](%id = 178966800) (3.3.6)
 

> `assign`(res, D1SortSymPolyVec(Pa1)); -1; `assign`(Pa2, res[1]); 1; `assign`(U2, res[2]); 1
 

 

`assign`(Pa2, Vector[row](%id = 167828368))
`assign`(Pa2, Vector[row](%id = 167828368))
`assign`(U2, Matrix(%id = 189360960)) (3.3.7)
 

> SYM(Pa2); 1
 

Vector[row](%id = 189359872) (3.3.8)
 

> `assign`(res, D1MatOrthExtVec(Pa2)); 1
 

 

MSG: Old and New Support:
`assign`(res, [Matrix(%id = 190854148), Matrix(%id = 173951620)])
`assign`(res, [Matrix(%id = 190854148), Matrix(%id = 173951620)])
(3.3.9)
 

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

 

`assign`(U3, Matrix(%id = 173153268))
`assign`(U3, Matrix(%id = 173153268))
`assign`(U3, Matrix(%id = 173153268))
`assign`(U3, Matrix(%id = 173153268))
`assign`(U3, Matrix(%id = 173153268))
Vector[row](%id = 204163996) (3.3.10)
 

> `assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U1, U2), U3))), z)); 1; simplify(`+`(Pe[1, 1 .. 3], `-`(convert(Pa, Vector[row])))); 1
`assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U1, U2), U3))), z)); 1; simplify(`+`(Pe[1, 1 .. 3], `-`(convert(Pa, Vector[row])))); 1
`assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U1, U2), U3))), z)); 1; simplify(`+`(Pe[1, 1 .. 3], `-`(convert(Pa, Vector[row])))); 1
`assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U1, U2), U3))), z)); 1; simplify(`+`(Pe[1, 1 .. 3], `-`(convert(Pa, Vector[row])))); 1
`assign`(Pe, collect(subs(z = `/`(1, `*`(z)), Transpose(Typesetting:-delayDotProduct(Typesetting:-delayDotProduct(U1, U2), U3))), z)); 1; simplify(`+`(Pe[1, 1 .. 3], `-`(convert(Pa, Vector[row])))); 1
 

 

`assign`(Pe, Matrix(%id = 152632416))
`assign`(Pe, Matrix(%id = 152632416))
`assign`(Pe, Matrix(%id = 152632416))
`assign`(Pe, Matrix(%id = 152632416))
`assign`(Pe, Matrix(%id = 152632416))
Vector[row](%id = 192642768) (3.3.11)
 

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

`assign`(filters, Vector[column](%id = 184595452))
`assign`(filters, Vector[column](%id = 184595452))
`assign`(filters, Vector[column](%id = 184595452))
`assign`(filters, Vector[column](%id = 184595452))
`assign`(filters, Vector[column](%id = 184595452))
(3.3.12)
 

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

 

`+`(`-`(`/`(`*`(`/`(1, 81)), `*`(`^`(z, 4)))), `-`(`/`(`*`(`/`(4, 81)), `*`(`^`(z, 3)))), `/`(35, 81), `/`(`*`(`/`(20, 81)), `*`(z)), `/`(`*`(`/`(8, 81)), `*`(`^`(z, 2))), `-`(`*`(`/`(1, 81), `*`(`^`(...
0 (3.3.13)
 

> filters[2, 1], D1Support(filters[2, 1]), SYM(filters[2, 1]); 1
 

`+`(`-`(`*`(`/`(5, 162), `*`(sqrt(2), `*`(`^`(z, 4))))), `-`(`*`(`/`(10, 81), `*`(`^`(z, 3), `*`(sqrt(2))))), `*`(`/`(20, 81), `*`(`^`(z, 2), `*`(sqrt(2)))), `-`(`*`(`/`(4, 81), `*`(sqrt(2), `*`(z))))...
`+`(`-`(`*`(`/`(5, 162), `*`(sqrt(2), `*`(`^`(z, 4))))), `-`(`*`(`/`(10, 81), `*`(`^`(z, 3), `*`(sqrt(2))))), `*`(`/`(20, 81), `*`(`^`(z, 2), `*`(sqrt(2)))), `-`(`*`(`/`(4, 81), `*`(sqrt(2), `*`(z))))...
(3.3.14)
 

> filters[3, 1], D1Support(filters[3, 1]), SYM(filters[3, 1]); 1
 

`+`(`*`(`/`(1, 54), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 4))))), `*`(`/`(2, 27), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 3))))), `-`(`*`(`/`(4, 27), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 2)))))), `/`(`*`(...
`+`(`*`(`/`(1, 54), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 4))))), `*`(`/`(2, 27), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 3))))), `-`(`*`(`/`(4, 27), `*`(sqrt(3), `*`(sqrt(2), `*`(`^`(z, 2)))))), `/`(`*`(...
(3.3.15)
 

>