Parametric EQ Schem

Magnus Danielson magda at
Fri Mar 7 15:08:19 CET 1997

>>>>> "g" == gstopp  <gstopp at> writes:

 g>      The fuss about dual pots is that they are a little harder to find - 
 g>      that's all. No real design problem.

I have *never* thougth of that... I have allways had good access to a
wide set of components... but I guess I am spoiled. But I get the point.
 g>      As far as using the Q pot to control the bandwidth, yes you can do 
 g>      that, but it would be nice to a) have a change in bandwidth without a 
 g>      change in resonant peak gain, and b) be able to set it wider than a 
 g>      single state-variable bandpass output will allow. Like - what if you 
 g>      want a passband that is 1000 Hz wide, etc. I understand that you can 
 g>      reduce the resonance effect by reducing the input level as you 
 g>      increase the Q, but in the opposite direction your bandwidth stops 
 g>      increasing when Q reaches zero and you are stuck there.

OK, let's assume that we are talking about a 2-pole bandpass filter
being used for an fully parametic EQ. Then we start of with the
following generic s-plane formula:

	       a2 * s + a1 * s + a0
	H(s) = --------------------
	       b2 * s + b1 * s + b0

This formula convers all the 2-pole/0-zero, 2-pole/1-zero and
2-pole/2-zero realisations possible (and also impropper once).
Every change done in the components will modify the a2, a1, a0, b2, b1
and b0 in one way or another.

The roots of the a polynom is called the zeros of the filter

	a2 * s + a1 * s + a0 = 0 ==> (sr0, sr1) 

and the roots of the b polynom is called the poles of the filter.

	b2 * s + b1 * s + b0 = 0 ==> (sz0, sz1) 

May I point out that all s variables are complex :)

The zeros will act as reduction elements, they will effectively reduce
the signal when they come "near" the zero.
The poles will act as gain elements, they will effectively strengthen
the signal when they come "near" the pole.

Now, in typhical filters you place the zeros out once and for all and
then fool around with the poles. This means that we start of with
figuring out where we should put the zeros. For a typhical lowpass
filter (say a Butterworth) you will place the zeros up at inifinit
frequency... this you get by selecting a2 and a1 to be zero and a0 is
picked to be passband correct (a0 = b0 will give unity gain).
A typhical highpass filter will put both zeros in origo and this is
realized by selecting a1 and a0 to be zero and a2 is picked to be
passband correct (a2 = b2 will give unity gain).
Now, for a typhical bandpass filter you simply put one of the zeros at
infinity and one of the zeros at origo, this is simply done by
selecting a2 and a0 to be zero and a1 to be passband correct (a2 is to
be picked to so that unity gain is achieved at center frequency fc).

Now, these extremes of LP, BP and HP is the way that many popular
filter approximations use (Butterworth, Bessel, Chebychev).

The neat thing about state-variable is that they have all these three
extremes as separate outputs, and my simple resistor based mixing you
can get all other versions from it. It is also very easy to select the
poles position in a state-variable filter. When you change the
frequency of the poles you automagically change the frequency of the
zeros and thereby maintaining the characteristics but scaled to a
diffrent frequency.

So, now we had setteled for a 2-pole BP cursuit we get this formula:

	             a1 * s      
	H(s) = --------------------
	       b2 * s + b1 * s + b0

Note that a1 is to be selected and depens only on the b polynome and
the passband gain we want. Now it is time to pick out the b2, b1 and
b0 values. To realize this filter we need to have b2, b1 and b0 to be
real values and not complex (their imaginary part must be zero). This
constraint gives that the poles must be eachothers complmentary.
This means that the imaginary part of both poles must have the same
magnitude and differ by sign. The real parts of the two poles must
then be equal. The second constrain is that the filter must be stable,
this gives demands on the poles to be on the left side of the jomega
axis in the splane, which is realized when the real part of the poles
is negative. After these strict necessary reductions we find out that
there is only two values to change, sigma and omega0. omega0 is
positive and sigma is negative.

These variables may seem abstract to you, and in a sense they are very
abstract, but I will now make it more clear what they do omega0 is the
frequency at which the poles should be placed, they we move to change
the frequency of the filter. sigma is the position of the poles from
the jomega axis in the splane. Since the poles have a resonant
behaiviour (if you hit an pole exactly you will get inifinit gain, if
you move a pole to the jomega axis the filter will selfresonate at
that frequency) will the distance from the jomega axis deside how
strong influence the pole will have on steady-state sine frequency
response (which is analyse only at the frequency axis... that is *all*
that the overestimated Fourier analysis will do for you... it's *only*
a subcase of the much more powerful LaPlace analysis being used
here). What we easilly can compare with this behaiviour is the Q
value, and they are actually the same thing but with diffrent
approach. The Q value increases for sharper peak, where as the sigma
will decrease for sharper peak. One can simply find out via the
bandwidth properties that they relate to eachother like this:

	sigma = -

(Note, I *migth* have forgotten a scale somewhere... this is all out
of my head you see)

So, the sigma value is mearly an inverse of the Q value.

When realising this into a design the work really goes into mapping
the pots so that we can separately change omega0 and sigma and the
state-variable design provides a clean way to do it and it also has
good S/N and component stability (will change very little for
component diffrences).

So, now that we have frequency and Q control, how do we get this to
have the necessary cut/boost capability?

There is several approaches to this, but they are all very simple
mixing problems. One way is to mix the three outputs (add some from
the LP and HP outputs with the rigth sign) or mix with the input
signal. Most EQs will just do the mix between the input signal and the
BP output. If you do a mixbus with diffrent polarities, hang a single
pots endpoints between them and feed the BP signal to the pot tap
terminal and let the input signal go to one of the mixbuses througth a
fixed resistor you now can have one or more EQ sections which have the
desired boost/cut function.

As for Gene's whish to have a variable bandwidth once the Q value is
low (sigma is way up there, the poles have little influence) you could
start playing with mixing in some LP or HP, but this is *very*
uncommon... also, recall that the bandwidth is a function of where the
-3db points happends show up. Are you sure you are looking for
diffrent bandwidth? I could go on a deeper discussion (beware!) on
this, but I want to be sure that we talk about the same things.
Besides, moving the zeros from the endpoints will just sharpen the
bandwidth, so I don't see how that would help out. An sideeffect of
moving the zeros is that you will no longer have a ture bandpass
filter, so the response migth increase at other places (base and top)
than intended to modify. The only thing that would seriously act as
Gene think is a 4 pole EQ, but I am not sure that this is what he
really means or that an 4 pole EQ would be musically usefull except
for making nasty things if sweepable...

The lowpass/highpass solution that Gene where talking about is in a
way equalent to just fuddeling about with the output summings of LP,
BP, HP and input signal that I described, but I think that the output
summing case is much easier to get into shape with combind with normal
Q values.

There is variants on the same theme which maintains a small "clock" as
you raise the boost or lower the cut, these are mostly used in
graphical equalizer from some brands, but is to my knowledge not being
used in parametric EQs...

 g>      So - the question now becomes, how do you configure a state-variable 
 g>      filter to provide cut/boost with a single pot rotation? I can tell 
 g>      that I would need a few sheets of paper to figure this one out... plus 
 g>      maybe some protoboard experiments...

Did you get my comments on that above?

If you want this to be combind with some kind of extra output mixing
you migth turn lucky or have to settle for a double pot somewhere...

I can dig up my old schematics somewhere or be lazy and redraw it :)

Have someone noted that I kind of enjoy fiddling about with filters? :)


More information about the Synth-diy mailing list