K0 := 7; K1 := 3; K2 := 3; N0 := 5; N1 := 5; n := 'n'; H00 := z -> sum(a(2*n)*z^n, n=0..(N0-1)); # filter H00 n := 'n'; H01 := z -> sum(a(2*n+1)*z^n,n=0..(N1-1)); # filter H01 n := 'n'; H10 := z -> sum(b(2*n)*z^n, n=0..(N0-1)); # filter H10 n := 'n'; H11 := z -> sum(b(2*n+1)*z^n,n=0..(N1-1)); # filter H11 n := 'n'; H20 := z -> sum(c(2*n)*z^n, n=0..(N0-1)); # filter H20 n := 'n'; H21 := z -> sum(c(2*n+1)*z^n,n=0..(N1-1)); # filter H21 H0 := expand(H00(z^2) + z*H01(z^2)); H1 := expand(H10(z^2) + z*H11(z^2)); H2 := expand(H20(z^2) + z*H21(z^2)); P00 := expand(H00(z)*H00(1/z) + H10(z)*H10(1/z) + H20(z)*H20(1/z)); P01 := expand(H00(z)*H01(1/z) + H10(z)*H11(1/z) + H20(z)*H21(1/z)); P11 := expand(H01(z)*H01(1/z) + H11(z)*H11(1/z) + H21(z)*H21(1/z)); interface(screenwidth=300); writeto(`eqs`); lprint(`// Tight Frame Conditions`); lprint(coeff(P00,z,0) - 2,`,`); lprint(coeff(P11,z,0) - 2,`,`); k := 'k': for k from 1 to 8 do lprint(coeff(P00,z,k),`,`); lprint(coeff(P11,z,k),`,`); od; k := 'k': for k from -8 to 8 do lprint(coeff(P01,z,k),`,`); od; # ---------- Zero-Moment Conditions ---------- R0 := rem(H0,(z+1)^K0,z): R1 := rem(H1,(z-1)^K1,z): R2 := rem(H2,(z-1)^K2,z): lprint(`// Zero-Moment Conditions`); k := 'k': for k from 0 to 9 do lprint(coeff(R0,z,k),`,`); lprint(coeff(R1,z,k),`,`); lprint(coeff(R2,z,k),`,`); od; # - - - Extras - - - lprint( subs(z=1,H0) - 2, `,`); lprint( c(8), `,`); lprint( c(9), `,`); lprint(0,`;`); writeto(terminal); interface(screenwidth=80);