I have hard time to design a 4th order low pass filter using Sallen-Key architecture with corner frequency 33kHz and overall DC gain of 0dB.

I have f01 (normalized) =1, Q1= 0.541, fo2(normalized)=1 and Q2=1.306.

What are the resistor and capacitor values if I consider C1=1nF for the two stages? How the op-amp circuit will be?

  • 1
    \$\begingroup\$ Sallen & Key describe a number of kinds of filters. I can tell, though, from your Q's that this is a Butterworth. You should have said as much. From what I can see, all you've done is copied the constants from a table. Do you know how to go from \$\omega=1\$ to your frequency? And yes, it's probably a good idea to first select the capacitor values, since there are fewer choices there. The resistor values can follow. Can you show any work other than reading constants from a table? Is this class work? Or something else? \$\endgroup\$
    – jonk
    Commented Jun 21, 2020 at 5:21
  • \$\begingroup\$ Also, do note that the required damping of a Sallen-Key stage also determines the gain of that stage. So if you are to have an overall gain of 0 dB, do you also perhaps imagine you may need an additional stage? Or not? How would you know? Can you compute this? \$\endgroup\$
    – jonk
    Commented Jun 21, 2020 at 5:36
  • \$\begingroup\$ The Op Amp even though it has unit gain in the passband, in order to feedback in the stopband requires a min GBW of 100x (f-3dB * Q) \$\endgroup\$ Commented Jun 21, 2020 at 7:00
  • \$\begingroup\$ Then C2=1.17nF (nearest 1% 1.18nF) and R1=4.12k, R2=4.87k. You can scale C2 for the 2nd stage. by the ratio of (Q2/Q1)² \$\endgroup\$ Commented Jun 21, 2020 at 7:09
  • \$\begingroup\$ Caro, I'm noticing now that you've never selected an answer to any of your questions. You do respond, on occasion, though not enough. And here, you've added nothing to the discussion, at all. For example, Andy and I discussed the question of which of the two stages (poles) should precede the other. Nothing from you about your input source, or if it even matters to you, which might affect that discussion. Etc. Are you there, at all? Do you feel the answers at this time are over your head? It would help if you'd add something. \$\endgroup\$
    – jonk
    Commented Jun 23, 2020 at 22:11

3 Answers 3


There are several undefined elements in your question. The first is the fact that you don't mention the kind of filter. From your \$Q\$ values, it can be worked out that you are talking about a Butterworth filter. But you didn't mention this fact. You should have. Second, you have mentioned nothing about the input signal range. Third, you've said nothing about the rail voltages you plan to have available for the design. Forth, you've said nothing about what you have available for implementation: for example, you may use opamps; but you could also use NPN BJTs for each stage, as well. (The opamp is obviously a better choice than a single BJT. But still this may be important.) Fifth, you've said nothing about what the filter must drive -- we know nothing about the load. Etc. In short, we really have a lot more that we don't know which is important than what we do know that is important. You should write a lot more about your situation, at hand.

If you use Sage/sympy, it's not at all difficult to write up a script to generate Butterworth constants:

def Butterworth(n):
    r = solve( 1+(-1)**n*x**(2*n), x )
    t = []
    for a in r:
        if real( a ) < 0:
            t.append( a )
    t.sort( key = lambda tup: real( tup ) )
    u = []
    var( 's' )
    if ( len( t ) - 2*int( len( t ) / 2 ) ) == 1:
        u.append( s + 1 )
        t.pop( 0 )
    for i in range( len( t ) / 2 ):
        u.append( expand( (s - t[2*i]) * (s - t[2*i+1]) ).n() )
    return u

I am sure that experts might provide a better implementation. But that one does work okay. For example, writing:

for a in Butterworth(4): print(a)


s**2 + 1.84775906502257*s + 1.0
s**2 + 0.765366864730179*s + 1.0

Those constants are each the same as \$2\,\zeta\$ or \$\frac1{Q}\$. So, it follows that:


Which is how I recognized your filter type.

The Sallen-Key topology is the next aspect of your question. Since Sallen & Key were focused on replacing inductors with capacitors in their paper, it's no surprise that the general form is:


simulate this circuit – Schematic created using CircuitLab

Clearly, in the above, it is possible to set \$R_3=0\:\Omega\$ to get a voltage follower where \$K=1\$. However, the general transfer function is:


Here, \$K=1+\frac{R_3}{R_4}\$ and \$\omega_{_0}^2=\frac1{R_1\,R_2\,C_1\,C_2}\$.

You've specified the corner frequency at \$33\:\text{kHz}\$ and the capacitor values all at \$1\:\text{nF}\$, I think. (But I'm not entirely sure, on that last point.) You only want the resistor values. The overall gain is to be \$0\:\text{dB}\$, but the gain of each Sallen-Key stage (if you use equal valued \$R\$ and \$C\$ in its design) is then determined by its damping factor. It looks right now as though you expect all capacitor values to be the same. So I'm going to make the same assumption for the values of \$R\$ in order to keep this simple and to avoid waiting for answers from you that may not be forth-coming.

Taking the above assumptions, that all \$C\$ values are the same and that all \$R\$ values are the same, then the new transfer function is:

$$\frac{V_{_\text{OUT}}}{V_{_\text{IN}}}=\frac{K\,\omega_{_0}^2}{s^2+\left(3-K\right)\omega_{_0} s+1}$$

Here, \$3-K=2\,\zeta\$, so it follows that \$K=3-2\,\zeta\$. From this, the damping factors determined by the Butterworth polynomials then also can be understood to determine the overall gain of each Sallen-Key 2nd order stages:


This results in an overall gain of \$A_v=2.57483577311484\$ for both stages. Since that isn't desired, you'll need to further reduce this with a prior input stage, a stage between the two, or a 3rd stage. How you handle this is up to you and your understanding of the circumstances. So the arrangement of each stage (their ordering) is left to you to work out.

This page provides an excellent overview and provides you with the tools you need to convert from the analytical \$\omega_{_0}=1\$ form to specific resistor and capacitor values that relate to a given \$\omega_{_0}\$ value other than 1. Please follow their instructions to reach your desired resistor values. (That web site also provides you with the justification for the Butterworth design approach -- so it includes a lot for you to study and learn about.)

It's really not that hard to achieve.

So here's a shot at it. In contrast to the discussion I had with Andy (see the discussion below his answer here), I'll select the higher-Q stage (and therefore also higher gain) to be the 1st stage. The reason for this is that you usually want the highest gain as the 1st stage for noise reasons. However, keep in mind that I've no idea what's driving this system and you may want either still more more gain, or less, in the first stage. So you may actually want a "pre-amplifier." But since we know nothing, really, let me just choose a path and follow it. Meanwhile, it's important that you keep in mind that this is just a choice and not necessarily the better choice for any given circumstance.

With that choice for the 1st stage, I'll follow it by an attenuating stage which only has the single purpose of reducing the signal sufficiently so that the final 2nd Butterworth stage can pick up from there and complete the picture.


simulate this circuit

The result looks like this:

enter image description here

Which is as would be expected.

As I said before, it's not all that complicated.

I used standard resistor values from the E12 series.


In principle, you have two basic design alternatives for a 4th-order Butterworth S&K lowpass (unity gain):

  • One unity gain amplifier for each 2nd-order stage

  • Decoupling of the first RC section from the second one with another unity-gain amp. That means: Two unity gain amplifiers for each 2nd-order stage. This alternative offers simpler design formulas (Equal capacitors C):

    Pole frequency wp=1/R1C*SQRT(kr) with kr=R3/R1 (input resistor R1)

    Pole-Q: Qp=SQRT(1/kr)


I have f01(normalized) =1 ,Q1= 0.541 , fo2(normalized)=1 and Q2=1.306

That's correct because for a BUTTERWORTH filter the product of Q1 and Q2 = 0.7071 and your product comes to 0.7065 (i.e. near enough). This then positions the conjugate pole-pairs on the circumference of a circle of radius \$\omega_0\$ (also referred to in other texts as \$\omega_n\$ and \$\omega_p \text{ note}^1\$): -

enter image description here

Picture stolen from Understanding Butterworth Filter poles and zeros.

If you do the trigonometry on the angles you will find that the x-axis (the real part of the complex s-plane) equals \$\omega_0\cdot \zeta\$. If poles and zeros are a bit alien to you, please read this post entitled: -

What does a bode plot represent and what is a pole and zero of bode plot?

And hopefully you'll find an explanation.

The damping ratios for each stage can be converted from Q using this formula: -

$$\zeta = \dfrac{1}{2\cdot Q}$$

  • \$\zeta_1\$ = 0.924
  • \$\zeta_2\$ = 0.383

You can calculate values using this calculator: -

enter image description here

How the op-amp circuit will be ?

Does the above picture explain that adequately?

The above shows values I plugged in to get an Fc of approximately 33 kHz and \$\zeta\$ = 0.924. Step and repeat for the next stage. Always put the more highly damped first in the signal chain to prevent overshoot causing clipping AND pick your op-amps well. You'll need a GBW product well over 1 MHz.

\$\text{ note}^1\$ - for the benefit of @LvW

  • \$\begingroup\$ Quote:"... for a sallen key filter the product of Q1 and Q2 = 0.7071 ....". Just for the sake of exactness: The product of the Q values gives 0.7071 not because of the S&K structure. This special feature applies to the BUTTERWORTH function and is independent on the chosen filter topolgy (as was explained discovered by you some time ago). \$\endgroup\$
    – LvW
    Commented Jun 21, 2020 at 13:31
  • \$\begingroup\$ @LvW yes I missed that word. I shall add it. I think that was me who showed you that odd little relationship (for the record). \$\endgroup\$
    – Andy aka
    Commented Jun 21, 2020 at 14:26
  • \$\begingroup\$ Yes - it was you. Have you a link available? Unfortunately, I could not find the corresponding thread... \$\endgroup\$
    – LvW
    Commented Jun 21, 2020 at 14:42
  • \$\begingroup\$ @LvW I can prove it given that the pole spacing is even around the circle but I've only ever observed it and not seen any web page that talks about it. \$\endgroup\$
    – Andy aka
    Commented Jun 21, 2020 at 14:57
  • 1
    \$\begingroup\$ @Andyaka And, I guess, I have other experiences where the problem (to the designer, not me) to solve was to get the absolute highest possible gain from the first stage (signal was extremely tiny), because once the noise enters the system from the detector all you can do is then average it out (filter it) in later stages or in software. The highest gain in the 1st stage was critical. But this wasn't just a generic multi-pole filter, either. So I take your point. \$\endgroup\$
    – jonk
    Commented Jun 23, 2020 at 17:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.