Csound Csound-dev Csound-tekno Search About

[ Csound] BOUNCE Csound: Non-member submission from [Magnus Danielson ] (fwd)

Date1998-07-28 12:24
Fromjames@maths.ex.ac.uk
Subject[ Csound] BOUNCE Csound: Non-member submission from [Magnus Danielson ] (fwd)
>>>>> "JvZ" == Job van Zuijlen  writes:

 JvZ> David's question about butterworth filters evoked some
 JvZ> old-time memories from the time (some 20 years ago) when I was 
 JvZ> designing analog synthesizers and other electronic music 
 JvZ> equipment.

 JvZ> One thing I remember from that time is that cascading lower
 JvZ> order filters does not result in a higher order filter *unless* 
 JvZ> you include some form of feedback.  The effect of cascading, for
 JvZ> example, three low-pass second-order Butterworth filters is
 JvZ> a low-pass filter with a slope of 36db/octave, but with a very 
 JvZ> round cut-off region (i.e. the steep slope doesn't start right 
 JvZ> away after the cut-off frequency).  The feedback helps to make
 JvZ> this point "sharper" (This though to explain with pictures and I 
 JvZ> don't want to bore you with 10k words ;-)

But, this feedback hardly renders a Butterworth filter. In order to
create a Butterworth filter of higher order one has to position the
poles in the correct positions. For Butterworth filters one has to
position the poles evenly spaced on a circle centered around the origo
in the s-plane. The circle radius determines the cut-off frequency.
All this is a direct consequence of the maximally flat approximation
on block filter. There are several brilliant texts that describes
this, but the formulas for Butterworth pole positions are:

              pi                  pi
s (i) = - sin -- (2i - 1) + j cos -- (2i - 1)
 p            2n                  2n

where n is the number of poles, i is the pole number (1 to n).
Note that this formula gives a filter normalized to w = 1, so the
poles needs to be transposed to the wanted frequency, but this is done
with a simple multiplication. A realization needs to pair up poles
wich is complementary, and this happends by takine the pairs from the
outer ends of the series and pair up, and so on to the middle.

For the lazy people there are many diffrent percalculated tables, but
beware, many writers of these tend in insert small errors to know that
when reprinted with the error, they can approach these and claim
money. Using appropriate formulas will calculations be simple.

 JvZ> I used to be able to design filters and work with poles and zeros.
 JvZ> It is part of standard analog filter theory, so may be you can find 
 JvZ> a book about it.  If I can find my notes, I might want to try it
 JvZ> out myself, which I will let you know.

I use a book called "Filtering in the Time and Frequency Domains" by
Blinchikoff and Zverev to solve most of my questions on the topic, I
have found that this book replaces many others and is to be considered
a good reference. It survives time better than many.

Cheers,
Magnus