maverick@fir.Berkeley.EDU (Vance Maverick) (12/05/90)
In the computer-music literature, I've seen the term "complementary" used to describe a pair of filters. For example, in the waveguide clarinet model proposed by Julius Smith, the signal traveling down the bore is partly transmitted and partly reflected; the reflected version is lowpass, the transmitted version is highpass. These filters are described as complementary, which I take to mean that, at any given frequency, the sum of the energy coming out of the two filters is equal to the energy going down the bore. Is there a recipe for generating the "complement" of a given filter? Or for generating a pair of filters which are complementary in this sense? I've seen the basic transformations between lowpass and highpass filters, and I don't think they qualify.
jbuck@galileo.berkeley.edu (Joe Buck) (12/06/90)
In article <9441@pasteur.Berkeley.EDU>, maverick@fir.Berkeley.EDU (Vance Maverick) writes: > Is there a recipe for generating the "complement" of a given filter? Or > for generating a pair of filters which are complementary in this sense? > I've seen the basic transformations between lowpass and highpass > filters, and I don't think they qualify. It's easy. You want the two filters to sum to one; equivalently, you want the sums of the two impulse responses to sum to 1 for n=0 and 0 for everywhere else. Let's say you have an FIR filter and you want its complement. Let h(n) be the value of the nth tap of the filter. Then c(0) = 1 - h(0) c(n) = -h(n), n > 0 Voila. Note that the outputs of the two filters sum to give the original signal back. -- Joe Buck jbuck@galileo.berkeley.edu {uunet,ucbvax}!galileo.berkeley.edu!jbuck
karsh@trifolium.esd.sgi.com (Bruce Karsh) (12/07/90)
In article <9441@pasteur.Berkeley.EDU> maverick@fir.Berkeley.EDU (Vance Maverick) writes: >Is there a recipe for generating the "complement" of a given filter? Or >for generating a pair of filters which are complementary in this sense? >I've seen the basic transformations between lowpass and highpass >filters, and I don't think they qualify. Generate one of the too signals, e.g. the low passed signal. Subtract it from the original signal to get the high passed signal. Bruce Karsh karsh@sgi.com
wilf@sce.carleton.ca (Wilf Leblanc) (12/08/90)
karsh@trifolium.esd.sgi.com (Bruce Karsh) writes: >In article <9441@pasteur.Berkeley.EDU> maverick@fir.Berkeley.EDU (Vance Maverick) writes: >>Is there a recipe for generating the "complement" of a given filter? Or >>for generating a pair of filters which are complementary in this sense? >>I've seen the basic transformations between lowpass and highpass >>filters, and I don't think they qualify. >Generate one of the too signals, e.g. the low passed signal. Subtract it >from the original signal to get the high passed signal. > Bruce Karsh > karsh@sgi.com This is a nice idea, but it won't work in general. If H(z) is the low pass prototype, then, 1 - H(z) is a high pass ? No, sorry this does not work. i.e., say H(e^jw) = j (at a certain low frequency). Then 1 - H(e^jw) = 1 - j (which is nothing like a high pass). i.e. simple subtraction doesn't consider the phase response of H(z). Something must have been written on this, what about Quadrature Mirror Filterbanks ?? -- Wilf LeBlanc Carleton University Internet: wilf@sce.carleton.ca Systems & Computer Eng. UUCP: ...!uunet!mitel!cunews!sce!wilf Ottawa, Ont, Canada, K1S 5B6
varri@news.funet.fi.tut.fi (V{rri Alpo) (12/08/90)
>>>Is there a recipe for generating the "complement" of a given filter? Or >>>for generating a pair of filters which are complementary in this sense? > >>Generate one of the too signals, e.g. the low passed signal. Subtract it >>from the original signal to get the high passed signal. > > This is a nice idea, but it won't work in general. > i.e. simple subtraction doesn't consider the phase response of H(z). > Something must have been written on this, what about Quadrature Mirror > Filterbanks ?? You could try this one: Tree-Structured Complementary Filter Banks Using All-Pass Sections, Regalia P, Mitra S, Vaidyanathan P, Renfors M, Neuvo Y. IEEE Transactions on Circuits and Systems, Vol. CAS-34, No. 12, Dec. 1987.