[comp.dsp] Complementary filters

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.