With the previous gain function you calculated, design a Bessel fourth-order bandpass filter with center frequency \$f0 = 10 kHz\$ and bandwidth \$Bf = f0/10\$.

I did the calculations with the Mathematica program and even the factorization part is fine. Now I am trying to match the coefficients obtained, with the transfer function of the previous problem, to get the value of the capacitors and the resistors, but even assigning values to the capacitors I can not solve.

\$F(S)=\frac{1}{1+a_1S+b_1S^2}\rightarrow F(s)=\frac{1}{1+a_1\big(\frac{s^2+\omega_0^2}{Bs}\big)+b_1\big(\frac{s^2+\omega_0^2}{Bs}\big)^2}\$




2th order Bessel coefficients:




Values of frequency and bandwidth:

\$f_0=10 KHz\$

\$\omega_0=2\pi\times 10^4 rad/s\$

\$B_f=1 KHz\$

\$B_{\omega}=B=2\pi\times10^3 rad/s\$

Substituting the values of the coefficients and frequencies in the transfer function:

\$F_{BP}=\frac{s^2}{1,565\times 10^{-8}s^4+2,167\times10^{-4}s^3+124,6s^2+855581,34s+2,44\times 10^{11}}\Leftrightarrow\$

Factoring in the Mathematica program:

\$F_{BP}(s)=\frac{6,38978\times 10^7s^2}{(3,69555\times10^9+6690,03s+s^2) (4,21887\times10^9+7156,62s+s^2)}\$

The transfer function of the previous problem is as follows (it is in this expression that I have to match the values):


My problem is now: I can not solve the system. Could you please help me?

System of equations:

\$G_1(G_4+G_5)C_2=\sqrt{6,38978\times 10^7}\$

\$G_2G_3G_5=3,69555\times 10^9\$



I know I have to give values to both capacitors and to one of the resistors. G is the inverse of the resistance. But even giving values, I can not solve, gives me a mathematical incompatibility.

  • \$\begingroup\$ You say a lot about what you can't do but give no clue as to what it is that anyone could offer any help on. Also, what "previous gain function you calculated"???? Voting to close as too obscure. \$\endgroup\$
    – Andy aka
    Commented Apr 24, 2017 at 8:22
  • \$\begingroup\$ @Andyaka I'm sorry, I was typing the equations I did, but it makes spend me a lot of time. Here is my full question, as clearly as possible. I really need help. \$\endgroup\$ Commented Apr 24, 2017 at 8:47
  • \$\begingroup\$ You have 7 unknowns (\$G_1\$..\$G_5\$, \$C_1\$, \$C_2\$) but you are using only 4 equations (for \$f_0, \omega_0, B_f, B_{\omega}\$). You need also 7 equations, otherwise your system is under-determined. I think you should also use the other 3 equations (for \$a_1, b_1, Q\$). \$\endgroup\$
    – Curd
    Commented Apr 24, 2017 at 9:01
  • \$\begingroup\$ @Curd Since we have 7 unknowns and 4 equations, what we could do was assign values to the two capacitors and a value to one of the resistors and solve the system of equations in order to the other 4 variables. But I tried to do that and it did not work out. \$\endgroup\$ Commented Apr 24, 2017 at 9:06
  • 1
    \$\begingroup\$ I'm not sure if that is the problem, but using only 4 equations does not mean that you are completely free to choose which 3 component values you assign by yourself; look e.g. at your last two equations: they already determine the ratio between \$C_1\$ and \$G_1\$ (\$G_1/C_1 = 6690,03\$), i.e. you can not choose both of them freely. \$\endgroup\$
    – Curd
    Commented Apr 24, 2017 at 9:15

1 Answer 1


If your system of equations is

\$G_1(G_4+G_5)C_2= k_1\$

\$G_2G_3G_5= k_2\$

\$\frac{G_1G_4C_2}{G_2G_3G_5}= k_3\$

\$\frac{G_4C_1C_2}{G_2G_3G_5}= k_4\$

and you want to pre-assign \$C_1\$ and \$C_2\$ then you are not free to choose any arbitrary other variables to assign a value by yourself but only particular ones.

You have to find out which ones:

\$k_3/k_4 = G_1 / C_1\$, \$\Rightarrow\$ \$G_1\$ is already determined.

\$k_2 k_3 = G_1 G_4 C_2\$, \$\Rightarrow\$ also \$G_4\$ is already determined.

\$k_2 k_4 = G_4 C_1 C_2\$, \$\Rightarrow\$ also \$G_4\$ is already determined (no new Information)

Now looking at 1st equation shows that also \$G_5\$ is determined (because \$G_1, G_4\$ and \$C_2\$ are determined).

Finally note that \$G_2\$ and \$G_3\$ appear only as product \$G_2 G_3\$ in any of the equations, i.e. you can choose one of them without affecting the solubility of the system.

If you pre-determine \$C_1\$ and \$C_2\$ the system of equations also determines \$G_1, G_4\$ and \$G_5\$; i.e. you are not free to choose any of those \$G\$'s.

You should, however, be able to solve the system of equations by assigning values to either

  • \$C_1, C_2\$ and \$G_2\$ or
  • \$C_1, C_2\$ and \$G_3\$

And if you don't want to do it manually (or if you want to verify the result you found manually) this is how you can use sympy to do the algebra:

from sympy import *

# Define symbols
G1, G2, G3, G4, G5 = symbols('G1 G2 G3 G4 G5')
C1, C2 = symbols('C1 C2')
k1, k2, k3, k4 = symbols('k1 k2 k3 k4')

# Solve equation system for for Vout. 
solvedEqSystem = solve([ 
        G1 * (G4 + G5) * C2           - k1, # equation (1)
        G2 * G3 * G5                  - k2, # equation (2)
        C2 * G1 * G4 / (G2 * G3 * G5) - k3, # equation (3)
        C1 * C2 * G4 / (G2 * G3 * G5) - k4  # equation (4)
    # list of variables to solve for; i.e. all the ones not listed here 
    # (C1, C2, G3) are assumed to be pre-detemined and will remain in 
    # the resulting expressions
    [G1, G2, G4, G5]  

for r in solvedEqSystem[0]:
    print r

Result: 4 expressions for the 4 unknon variables \$G_1, G_2, G_4, G_5\$:

C1*C2*k2*k3/(G3*k4*(k1 - k2*k3))
k4*(k1 - k2*k3)/(C1*C2*k3)

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.