in article 1118921914.707555.55380@o13g2000cwo.googlegroups.com, Rune Allnor at allnor@tele.ntnu.no wrote on 06/16/2005 07:38:> robert bristow-johnson wrote: > in article 1118686950.000754.48610@g49g2000cwa.googlegroups.com, Rune Allnor > at allnor@tele.ntnu.no wrote on 06/13/2005 14:22: > > > I have a vague recollection from Control Systems 101 > > (which was the last time I used S plane formulae) that causal, stable > > continuous-time systems have an s transform of the type > > > > b_0 + b_1s + ... + b_(n-1)s^(n-1) > > H(s) = ------------------------------------------ > > a_0 + a_1s + ... + a_(n-1)s^(n-1) + s^n > > > > i.e. that the denominator must be a polynomial in s that is of strictly > > higher degree than the numerator. > > no, they can be equal order > > b_0 + b_1 s + ... + b_(n-1) s^(n-1) + b_n s^n > H(s) = ------------------------------------------------ > a_0 + a_1 s + ... + a_(n-1) s^(n-1) + s^n > > which is equal to > > c_0 + c_1 s + ... + c_(n-1) s^(n-1) > H(s) = b_n + ------------------------------------------------ > a_0 + a_1 s + ... + a_(n-1) s^(n-1) + s^n > > > where c_k = b_n*a_k - b_kscrewup. i think it's c_k = b_k - b_n*a_k> > For the Cheb 2 systems, I find that > > the zeros come in pairs, i.e. that the 2nd order "filter primitives" > > become > > > > b_0 + b_2 s^2 > > H'(s) = ----------------------- > > a_0 + a_1 s + a_2 s^2 > > > > which contradicts my very vague recollection from an intro class of > > some 12-15 years ago. > > it will for even order, anyway. for odd order, the number of poles exceeds > the number of zeros by 1....> [... lots of good stuff snipped ...] > > Hi RBJ, and thanks for the elaborate post. > > Your post gave basically the same message I got from van Valkenburg's > book, so I got a bit more confidence that I actually had the big > picture; that there were no hidden insights I had missed. > > So I took a closer look at my code. It turned out that I had > misinterpreted the term "zero at infinity" and introduced a b_1*s term > in the first-order section of the filter.yeah, instead of thinking of it as (s-q1)(s-q2)...(s-qn) H(s) = G ----------------------- (s-p1)(s-p2)...(s-pn) think of it as (1-s/q1)(1-s/q2)...(1-s/qn) H(s) = H(0) ----------------------------- (1-s/p1)(1-s/p2)...(1-s/pn) then the concept of "zero at infinity" or "pole at infinity" has more tractable meaning. either way, under the BLT, they get mapped to z = -1.> Once that was corrected (and > when I trusted that the pair of zeros actually give a b_2*s^2 term in > the 2nd order sections), everything came together.the zeros of the Tchebyshev Type II (or "Inverse Tchebyshev") low-pass filter are on the jw axis. (except for that one zero at infinity for an odd-order Type II LPF.)> Thanks for your help. I'd probably spent days or weeks sorting this > out without your assistance.now, just plug and chug. the BLT maps poles and zeros just like it maps any other s to the z-plane. for each conjugate pair of poles/zeros, you get coefs for a biquad. lemme know (email if you want) if there are any holes left. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."