# Cut-off frequency, gain and quality factor calculation of complex 2nd order low pass filter

I'm building a full analog chorus-effect pedal. My schematic is based on that of a Rockman X100 headphone amp, designed by Tom Sholz. In this schematic, there is a 2nd order low pass filter that looks like a variant of a Sallen-Key low pass filter, but I have never come across a topology like this.

Can someone help me to derive the formulas for calculating the frequency, gain and quality factor?

link to the original schematic: https://www.dropbox.com/s/3kii0qlqiwtoosj/rockman-x100-and-soloist-schems.pdf?dl=0 It starts on page 2 underneath the 'Stereo Chorus' title.

• Linus, I'll show you an approach. I don't want to work out the 3rd order Q for you, though. But I do work it out for the 1st stage (2nd order.) Given the arrangement I see above, though, the Q won't be damped much. Still, I'd like to leave the derivative work to a separate question, if you are still serious about it and don't know how to do it.
– jonk
May 15, 2021 at 7:16
• Linus, Thanks for the link. There I see a bucket brigade chip used at the output. Interesting. (I also see that you hacked off the stuff connected to (+) in the design.)
– jonk
May 15, 2021 at 20:24

## 1st stage

If you set $$\\gamma=\frac{C_1}{C_2}\$$ and $$\\rho=\frac{R_3}{R_4}\$$, then the left-side 2nd order filter (1st stage of two) has $$\\omega_{_0}=\frac1{R_4\, C_2 \,\sqrt{{\vphantom{M}}\gamma\,\rho}}\$$ and $$\Q=\frac{\sqrt{{\vphantom{M}}\gamma\,\rho}}{1+\rho}\$$.

In the above circuit $$\\rho=1\$$, so $$\\omega_{_0}=\frac1{R_4\, C_2 \,\sqrt{{\vphantom{M}}\gamma}}\$$ and $$\Q=\frac12\sqrt{{\vphantom{M}}\gamma}\$$.

## 2nd stage

That's followed by a simple RC low-pass filter (2nd stage) that I'm sure you can work out. It should be set to a frequency a little higher, but not too much higher, so as to add another $$\20\:\text{db}\$$ per decade of roll-off. It will impact $$\Q\$$, a little. But I didn't want to bother with the derivatives I'd need to work it out for the 3rd order transfer function, so I left that for you.

## 1st stage transfer function

Using sympy and assigning the shared node between $$\R_3\$$ and $$\R_4\$$ the name, $$\V_x\$$, and the opamp output current as $$\I_o\$$, the first stage's transfer function is:

zc1 = 1/s/c1
zc2 = 1/s/c2
eq1 = Eq( 0, vi/r2 + vo/zc2 + vx/r3 )
eq2 = Eq( vx/zc1 + vx/r4 + vx/r3, vo/r4 )
eq3 = Eq( vo/r4 + vo/zc2, io + vx/r4 )
ans = solve( [eq1, eq2, eq3], [io, vx, vo] )
tf = simplify( ans[vo]/vi )
tf = fraction(tf)[0] / factor( expand( fraction(tf)[1] ), s )

(-c1*r3*r4*s - r3 - r4)/(r2*(c1*c2*r3*r4*s**2 + s*(c2*r3 + c2*r4) + 1))


That's not in standard form. But at least it's right.

As I wrote earlier, you can easily work out the transfer function for the 2nd stage and then apply it to the above.

## 1st stage transfer function using ratios

It's more interesting to do this, though:

c1 = gamma*c2
r3 = rho*r4
zc1 = 1/s/c1
zc2 = 1/s/c2
eq1 = Eq( 0, vi/r2 + vo/zc2 + vx/r3 )
eq2 = Eq( vx/zc1 + vx/r4 + vx/r3, vo/r4 )
eq3 = Eq( vo/r4 + vo/zc2, io + vx/r4 )
ans = solve( [eq1, eq2, eq3], [io, vx, vo] )
tf = simplify( ans[vo]/vi )
tf = fraction(tf)[0] / factor( expand( fraction(tf)[1] ), s )

-r4*(c2*gamma*r4*rho*s + rho + 1)/(r2*(c2**2*gamma*r4**2*rho*s**2 + s*(c2*r4*rho + c2*r4) + 1))

den = Poly( expand( fraction(tf)[1] ), s ).coeffs()
w0 = powdenest( sqrt( den[2]/den[0] ), force=True )

1/(c2*sqrt(gamma)*r4*sqrt(rho))

q = simplify( powdenest( sqrt( den[2]*den[0] )/den[1], force=True ) )

sqrt(gamma)*sqrt(rho)/(rho + 1)


Mostly the same approach. But now producing the same results I'd mentioned at the outset.

## Notes

I chose to set the voltage at the (-) input to the 1st stage opamp to $$\0\:\text{V}\$$ for the analysis. I did not forget to deal with KCL for that node. But the node voltage doesn't show up as a variable, since it isn't variable. (Not enough to bother with, anyway.)

Added: I didn't comment about interpreting the transfer equation for the first 2nd order stage, as I assumed you know the details well enough (from what I saw in your writing.) You can see that the numerator indicates a low pass plus a bandpass. Sallen and Key do cover eighteen different types of passive structures; those they felt were important. But not this one. (They did say that others were possible, of course.) So I'm not sure you could call this a Sallen & Key.

Also, it's wonderful to see the different perspectives your question generated. So I'm up voting your question. You have a lot to work with. (Though so far as I can see no one took on the question of the overall equivalent 3rd order $$\Q\$$.)

Added again: Forgot to mention that the schematic you show doesn't have a resistor at the (+) opamp pin, to ground. It's usually better to include one that helps deal with bias currents.

## A design approach

Suppose you already know $$\\omega_{_0}\$$ (aka $$\\omega_{_p}\$$) and $$\Q\$$. Then start by considering the relationship:

$$\tau=C_2\left(R_3+R_4\right)=\frac1{\omega_{_0}\,Q}$$

Suppose you wanted $$\f_{_0}=6400\:\text{kHz}\$$ and $$\Q=2.5\$$. Then $$\\tau\approx 9.95\:\mu\text{s}\$$. May as well call it $$\\tau=10\:\mu\text{s}\$$ for design purposes.

Since capacitors have fewer value selections available, you would continue from here by selecting a value for $$\C_2\$$, but knowing approximately what you feel comfortable with for $$\R_3+R_4\$$. If the sum of those resistors might be in the vicinity of $$\10^5\:\Omega\$$ then the capacitor will be in the vicinity of $$\10^{-10}\:\text{F}\$$ or $$\100\:\text{pF}\$$.

Making the capacitor a little larger will make the resistors a little smaller. You get the idea.

Let's say that I've got nice quality $$\68\:\text{pF}\$$ capacitors on hand. So now I can set $$\C_2=68\:\text{pF}\$$. And find that $$\R_3+R_4\approx 146.3\:\text{k}\Omega\$$.

We can also work out (I'll leave the details for you to explore as I don't want to take away from you the chance to discover why) that $$\\gamma\approx 4\,Q^2\$$. So we know that $$\\gamma\approx 25\$$. This means that $$\C_1\approx 25\cdot C_2=1.7\:\text{nF}\$$. We can choose a nearby value of $$\C_1=1.8\:\text{nF}\$$ and then re-compute $$\\gamma=\frac{1.8\:\text{nF}}{68\:\text{pF}}\approx 26.47\$$.

Now we can find the two possible values for $$\\rho\$$: $$\\rho\approx 1.61678\$$ or $$\\rho\approx 0.6185\$$. (Doesn't really matter which one you pick.) This means that we need these two resistor values: $$\90.4\:\text{k}\Omega\$$ and $$\55.91\:\text{k}\Omega\$$. The nearby values would be $$\91\:\text{k}\Omega\$$ and $$\56\:\text{k}\Omega\$$. From here, we find that $$\R_3=56\:\text{k}\Omega\$$ and $$\R_4=91\:\text{k}\Omega\$$. Now $$\\rho\approx 0.6154\$$.

Now we can recompute $$\f_{_0}\approx 6373\:\text{Hz}\$$ and $$\Q=2.4985\$$. Those are very close to the design values. (But you have to take that with a grain of salt, given resistor and capacitor tolerances!)

The above procedure has the advantage that it doesn't force you to select a specific $$\\gamma\$$ or $$\\rho\$$, in advance. It lets those flow out of natural decisions regarding available rationalized values for capacitors and resistors, instead, and proceeds to a design-end that achieves the frequency and Q.

Let's instead say that you know in advance that you want $$\\rho=1\$$. Then you would know that $$\R_3=R_4=\frac{4\,Q}{2\,\omega_{_0}\,C_1}\$$. (See if you can work out why.) If you selected $$\C_2=62\:\text{pF}\$$ then $$\C_1=1550\:\text{pF}\$$. That's not available, but $$\C_1=1500\:\text{pF}\$$ is. Now compute $$\R_3=R_4\approx 82.9\:\text{k}\Omega\$$. But that's also not available, so select $$\R_3=R_4\approx 82\:\text{k}\Omega\$$, instead. Now compute $$\f_{_0}\approx 6364.5\:\text{Hz}\$$.

That just happens to be about the value I get for your circuit! If I had to guess about it, I imagine that the design criteria might actually have been $$\f_{_0}=6400\:\text{kHz}\$$ and $$\Q=2.5\$$. Given $$\C_2=62\:\text{pF}\$$ and a requirement that $$\R_3=R_4\$$ as a starting point, it's difficult to imagine escaping the actual design you have. So that's my guess.

This arrangement looks very similar to a multi-feedback low-pass amplifier. (See page 79 (schematic) and page 96 (design steps) at Basic Linear Design, Chapter 8.)

The difference is that the input resistor in the multi-feedback low-pass amplifier feeds to the middle of your T network instead of directly to the (-) input.

Still, you'll find there that the design process again starts by selecting a value for your $$\C_2\$$. They then develop a value for your $$\C_1\$$ next, in a fashion not unlike multiplying by $$\4\,Q^2\$$ (see the meaning they use for $$\\alpha\$$ to recognize this.) They then let the resistors fall out from those early steps. This is unlike what the designer of your schematic did in setting $$\R_3=R_4\$$ as an early step. But I think Analog's process could be adapted, similarly.

I'm curious if your schematic has an accepted name. The input resistor in the configuration shown on Analog Devices' document impacts the voltage gain. In your case, it doesn't, and instead represents the input impedance. This modification seems almost too obvious, in hind-sight.

(And it most certainly does not look like a twin-T notch. See page 105 from the PDF link above, to see why.)

• It's known as a bridged-T, according to what I know, but I wouldn't be surprised if it had a name attached. May 17, 2021 at 11:38
• @aconcernedcitizen A "bridged-T" would make sense. It's not listed that way in Analog's document, though. I'll have to google that up. Thanks!
– jonk
May 17, 2021 at 18:00

These are very good answers and let me add mine considering the rainy day in Occitanie : ) I am using the fast analytical circuits techniques or FACTs as described in my book. The principle is quite simple: determine the natural time constants of the system when the excitation is turned to zero (a 0-V $$\V_{in}\$$ source is a short circuit). These natural time constants give the poles of the circuit. Then, check the presence of zeroes and apply the null-double injection or NDI. The process is quite smooth as you will see.

Here, we have an active filter followed by a passive low-pass version. Considering a null output impedance driving the $$\RC\$$ filter, we can safely decouple the two transfer functions and concentrate on the first one with the op-amp.

First, set $$\s=0\$$ and open all the caps. In this configuration, the dc gain is that of a simple op-amp-based inverter (infinite $$\A_{OL}\$$). Then, replace the input source by a short circuit and "look" through the capacitor's connecting terminals to determine the resistance $$\R\$$. That resistance combined with the considered capacitor forms the time constants $$\\tau=RC\$$ we want:

The capacitors are temporarily disconnected and alternatively put in their dc state (open circuited) or high-frequency state (a short circuit). Considering a perfect op-amp and an infinite open-loop gain, you can inspect the circuit and obtain the expressions without writing a line of algebra and this is way cool.

For the zeroes, how can you know if there are zeroes in this active filter? Well, just alternatively set each of the energy-storing elements in their high-frequency state and check that a stimulus applied at $$\V_{in}\$$ would produce a response. If it does, you have a zero. If not, you don't:

A simple dc operating point with SPICE confirms that $$\C_1\$$ contributes a zero to the transfer function while the two (or three) other caps don't (output is 0 V for the two cases). To determine the zero, let's apply a null-double injection or NDI to this circuit:

You can see, again without a line of algebra, that the resistance seen from the connecting terminals is simply the parallel combination of $$\R_3\$$ and $$\R_4\$$. You can infer this result by considering the 0-V output voltage which implies also a zero bias on the inverting pin. Both $$\R_3\$$ and $$\R_4\$$ opposite terminals are therefore grounded and the junction offers a resistance $$\R=R_3||R_4\$$.

This is it, we can now assemble all these results in a Mathcad sheet, rearrange the final expression in a convenient second-order normalized form and there we are:

And it you plot my expression against that of jonk, the magnitude and phase response are identical:

• I just added a design procedure! But you've really added some wonderful effort and, as always, I enjoy reading from you! +1
– jonk
May 15, 2021 at 19:19
• Merci jonk, your answer is also very well documented and I upvoted it - +1! May 16, 2021 at 7:47

The transfer function of the first active block has - of course - a 2nd-order denominator $$\D(s)\$$. The transfer function has the form

$$H(s)=\dfrac{N(s)}{D(s)}=\dfrac{s\dfrac{R_3R_4}{R_2}C_1+\dfrac{R_3+R_4}{R_2}}{s^2R_3R_4C_1C_2+s(R_3+R_4)C_2+1}$$

Therefore, it is not a classical 2nd-order lowpass and also not a bandpass (both in multi-feedback topology). It is rather a combination of both with a peak (of app. 15 dB) around 6 kHz. The DC gain is app. 1.1. Above the peak the magnitude drops with 20 dB/dec only (due to the bandpass function with $$\a\cdot s\$$ in the numerator) and the max. phase shift reaches -90° (-270° in total due to the inverting opamp).

When you compare the denominator $$\D(s)\$$ with the general form it is a simple task to dermine the pole frequency and the pole Q.

Comment: When the resistor $$\R_2\$$ is connected to the common node (midpoint) of $$\R_3\$$ and $$\R_4\$$ you have the classical 2nd-order lowpass in multi-feedback topology.

So, it is NOT a Sallen-Key variant - all S&K filters have fixed gain stage (positive or negative gain)

• Hi concerned citizen - thanks for editing.
– LvW
May 15, 2021 at 12:53
• The 2 under $R_3+R_4$ in the numerator should actually be $R_2$. A quick edition will fix it. May 16, 2021 at 20:34
• @VerbalKint That was my mistake. Apparently having glasses on beats squinting, who would have thought? May 17, 2021 at 11:41
• No problem a concerned citizen, I too need glasses on my computer and I would be incapable to type any equation without them. "Old age is a shipwreck" once said De Gaulle several decades ago and I'm talking for myself : ) Cheers! May 17, 2021 at 12:09

That is not a simple lowpass filter, it is a Bridged-T notch filter in a negative feedback loop, followed by an 8.7 kHz single-pole lowpass filter. The T network produces a peak in the circuit's frequency response. The narrowness and height of the peak are determined by the ratio of C1 to C2. I've seen this configuration as a low-distortion oscillator.