I can't seem to find some easily code-able formulas for MFB high pass filter. I have found plenty for the low pass filter, but absolutely none for the high pass filter. For example, the formulas on page 7 for the low pass: https://www.ti.com/lit/an/sloa049b/sloa049b.pdf?ts=1606593846769&ref_url=https%253A%252F%252Fwww.google.com%252F they have broken the transfer function into Q, gain, and cutoff frequency. This is exactly what I am looking for, but for the high pass transfer function. The ones that I have come across look like this, page 2: https://www.analog.com/media/ru/training-seminars/tutorials/mt-220.pdf Here, I don't even know what alpha is in terms of components, and there is no expression for Q. I also don't understand the significance of k. Or worse, I run into this on page 310: http://web.mit.edu/6.101/www/reference/op_amps_everyone.pdf The use of the a1 and b1 coefficients here makes it much harder to code.

Should be a pretty easy question, I am just looking for design formulas for the MFB high-pass filter that mirror those from the TI link at the beginning. And yes, I have used Analogs filter wizard, I am doing this to recalculate the component values that I have designed there.

  • 2
    \$\begingroup\$ Search for low pass to high pass transformations. It's pretty normal to design a HPF by designing an equivalent LPF and transforming it. \$\endgroup\$ – Brian Drummond Dec 1 '20 at 19:28
  • \$\begingroup\$ I was thinking about that but the variables for everything seem so inconsistent. Is alpha the damping ratio? The attenuation rate? A pole location? It's cited differently in most of the articles \$\endgroup\$ – amateurhour Dec 1 '20 at 20:00
  • \$\begingroup\$ Have you seen this site? \$\endgroup\$ – a concerned citizen Dec 1 '20 at 22:18
  • 1
    \$\begingroup\$ @amateurhour Regarding \$\alpha\$, there are a couple of common usages for it. Look at the note at the bottom of this answer for some discussion. Your Analog PDF, for example, uses a meaning of \$2\zeta\$, while on the Wiki page I mention there it has a different meaning (one I tend to take), which is \$\zeta\,\omega_{_0}\$. The Analog paper makes it clear (to those knowing how to read the 2nd Order standard form, anyway) which form they imply. But they don't write it out for you. Sad to say. \$\endgroup\$ – jonk Dec 2 '20 at 6:44
  • 1
    \$\begingroup\$ @amateurhour When addressing someone, use the @<TAB> until the selected nickname is active. That will let that user know there is a reply. If you're getting notified it's because this is your question, so it's enough for someone to post something. \$\endgroup\$ – a concerned citizen Dec 2 '20 at 13:33

Since you mention scripting, it might be better to start from the bottom, up: find the roots of the lowpass prototype, which can be transformed and scaled, then applied to whatever transfer function you have.

Currently, what you want is to implement a transfer function for each topology you find; that's going to hurt in the long run. But, if you say you have the lowpass transfer function then you can apply the RC-CR transformations (as mentioned in the comments). This involves replacing each R with x/C, and each C with x/R, where x=1/\$\omega_0\$. So, the lowpass can be transformed into highpass like this:


For the lowpass (bottom half), V(o11) is the MFB topology, while V(o12) is the Laplace expression of the transfer function. For the highpass (upper half), V(o21) is the MFB topology, while V(o22) is the Laplace t.f.. The values for the components are slightly bogus, except C2 which has been calculated for a 10 kHz corner frequency (for better alignment when plotting). It's fairly obvious the ones containing lp represent the lowpass and the ones containing hp represent the highpass.

The resulting transfer function is compared with the textbook t.f., seen in E4. The traces match, but the Laplace expressions have been slightly shifted to avoid overlapping (like the phases do), for better viewing.

From the math side, the lowpass and the highpass t.f. are these:

$$\begin{align} H_{LP}(s)&=-\frac{\frac{1}{R_1R_3C_1C_2}}{s^2+\frac{1}{C_1}\left(\frac{1}{R_1}+\frac{1}{R_2}+\frac{1}{R_3}\right)s+\frac{1}{R_2R_3C_1C_2}} \tag{1} \\ H_{HP}(s)&=-\frac{\frac{C_1}{C_2}s^2}{s^2+\frac{1}{R_2}\left(\frac{C_1}{C_2C_3}+\frac{1}{C_2}+\frac{1}{C_3}\right)s+\frac{1}{R_1R_2C_2C_3}} \tag{2} \end{align}$$

Apply the substitutions (I'm writing \$\omega_0\$ to see that it's there, but consider it 1, for a clearer picture):

$$\begin{align} \omega_0&=\sqrt{\frac{1}{R_2R_3C_1C_2}} \\ C'_1&=\frac{1}{\omega_0R_1},\;C'_2=\frac{1}{\omega_0R_2},\;C'_3=\frac{1}{\omega_0R_3},\;R'_1=\frac{1}{\omega_0C_1},\;R'_2=\frac{1}{\omega_0C_2} \\ H_{HP}(s)&\stackrel{C'_1,C'_2,C'_3,R'_1,R'_2}{=}H_{LP}(\frac1s) \\ &\Rightarrow \\ H_{HP}(s)&=-\frac{C'_1C'_3R'_1R'_2}{\frac{1}{s^2}+R'_1\left(C'_1+C'_2+C'_3\right)\frac1s+C'_2C'_3R'_1R'_2} \\ &=-\frac{C'_1C'_3R'_1R'_2s^2}{1+R'_1(C'_1+C'_2+C'_3)s+C'_2C'_3R'_1R'_2s^2} \\ &=-\frac{\frac{C'_1C'_3R'_1R'_2}{C'_2C'_3R'_1R'_2}s^2}{s^2+\frac{R'_1(C'_1+C'_2+C'_3)}{C'_2C'_3R'_1R'_2}s+\frac{1}{C'_2C'_3R'_1R'_2}} \\ &=-\frac{\frac{C_1}{C_2}s^2}{s^2+\frac{1}{R'_2}\left(\frac{C'_1}{C'_2C'_3}+\frac{1}{C'_2}+\frac{1}{C'_3}\right)+\frac{1}{R'_1R'_2C'_2C'_3}}\,==\,H_{HP}(s) \end{align}$$

If you need this in terms of the generic transfer function (omitting the '):

$$\begin{align} H(s)&=\frac{Ks^2}{s^2+\frac{\omega_0}{Q}s+\omega_0^2} \\ &\Rightarrow \\ \omega_0&=\sqrt{\frac{1}{R_1R_2C_2C_3}} \tag{3}\\ \frac{\omega_0}{Q}&=\frac{1}{R_2}\left(\frac{C_1}{C_2C_3}+\frac{1}{C_2}+\frac{1}{C_3}\right) \tag{4}\\ &\Rightarrow \\ Q&=\sqrt{\frac{R_2}{R_1}}\frac{\sqrt{C_2C_3}}{C_1+C_2+C_3} \end{align}$$

TLDR: you can use the design equations from the lowpass MFB to generate the highpass MFB.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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