enter image description here

I'm somewhat unsure how to solve the Uout voltage of the above circuit using nodal analysis. Uout being the voltage at the right side obviously. I'm not entirely sure if what I have done so far is correct, but I'm definitely not sure how to continue with my solution. Here is what I've gotten so far:

First I added the voltage source Uin and made a source conversion with the R1 in series.

enter image description here

J1 is now in parallel with R1 (or G1).

Now I notice that there are 4 nodes in the circuit, so I can create a 4x4 matrix of the form GU=J:

enter image description here

Here I01 and I02 are the exiting current from their operational amplifiers.

We can remove the rows of I01 and I02:

enter image description here

Now noticing that U1=U2 and U3=U4, so we can add the their columns together:

enter image description here

Since U3=U4=Uout, we solve for U3:

enter image description here

Putting in

enter image description here

Now gives us

enter image description here

What do I do now to solve for Uout?

  • 5
    \$\begingroup\$ The case is so simple that it does not require an analysis on a node basis or anything else, but only for educational purposes. It is assumed that the buffer has infinite input impedance, so the output voltage is equal to the input voltage . It follows that the transfer function of the entire system is given by the product of the transfer functions of the two blocks. \$\endgroup\$
    – Franc
    Nov 13, 2023 at 16:34
  • 1
    \$\begingroup\$ If you want anybody to be able to follow your math, please annotate your schematic so we know what \$U_1\$, \$U_2\$, \$J_1\$, \$G_1\$, etc., are. \$\endgroup\$
    – The Photon
    Nov 13, 2023 at 16:42
  • 1
    \$\begingroup\$ @JohnnyB You have a single pole lowpass filter followed by a single pole highpass filter., each with the appropriate canonical form. Since they are decoupled by the op-amp buffers, the output is just the product of the two transfer functions, forming a bandpass filter. \$\endgroup\$
    – John D
    Nov 13, 2023 at 16:56
  • 2
    \$\begingroup\$ @JohnnyB Sure, I didn't mean to imply that you can't solve it using other methods, I was just replying to your question "Can you elaborate on this a bit?" about just multiplying the two trivial transfer functions. If you do that, you will have an easy check to see if your nodal analysis is correct. \$\endgroup\$
    – John D
    Nov 13, 2023 at 17:41
  • 1
    \$\begingroup\$ Because those op-amps are both simple voltage followers, the op amps really shouldn't enter into your equations. \$\endgroup\$ Nov 13, 2023 at 19:22

3 Answers 3


Well, notice that \$\displaystyle\text{V}_{+_1}\$ of the most left OP-AMP is given by:


We will get the same for the second OP-AMP:


Using the ideal OP-AMP rule:


We can see that \$\displaystyle\text{V}_{+_1}=\text{V}_{\text{o}_1}\$ and \$\displaystyle\text{V}_{+_2}=\text{V}_\text{o}\$.

So, we get:

$$\text{V}_\text{o}=\frac{\displaystyle\text{R}_2}{\displaystyle\frac{1}{\displaystyle\text{sC}_2}+\text{R}_2}\cdot\frac{\displaystyle\frac{1}{\displaystyle\text{sC}_1}}{\displaystyle\frac{1}{\displaystyle\text{sC}_1}+\text{R}_1}\cdot\text{V}_\text{i}\space\Longleftrightarrow\space$$ $$\mathscr{H}\left(\text{s}\right):=\frac{\text{V}_\text{o}}{\text{V}_\text{i}}=\frac{\displaystyle1}{\displaystyle1+\text{sC}_1\text{R}_1}\cdot\frac{\displaystyle\text{sC}_2\text{R}_2}{\displaystyle1+\text{sC}_2\text{R}_2}\tag4$$

So, when \$\displaystyle\text{s}=\text{j}\omega\$, we get for the amplitude:

\begin{equation} \begin{split} \left|\space\underline{\mathscr{H}}\left(\text{j}\omega\right)\right|&=\left|\frac{\displaystyle1}{\displaystyle1+\text{j}\omega\text{C}_1\text{R}_1}\cdot\frac{\displaystyle\text{j}\omega\text{C}_2\text{R}_2}{\displaystyle1+\text{j}\omega\text{C}_2\text{R}_2}\right|\\ \\ &=\left|\frac{\displaystyle1}{\displaystyle1+\text{j}\omega\text{C}_1\text{R}_1}\right|\cdot\left|\frac{\displaystyle\text{j}\omega\text{C}_2\text{R}_2}{\displaystyle1+\text{j}\omega\text{C}_2\text{R}_2}\right|\\ \\ &=\frac{\displaystyle\left|1\right|}{\displaystyle\left|1+\text{j}\omega\text{C}_1\text{R}_1\right|}\cdot\frac{\displaystyle\left|\text{j}\omega\text{C}_2\text{R}_2\right|}{\displaystyle\left|1+\text{j}\omega\text{C}_2\text{R}_2\right|}\\ \\ &=\frac{\displaystyle1}{\displaystyle\left|1+\text{j}\omega\text{C}_1\text{R}_1\right|}\cdot\frac{\displaystyle\omega\text{C}_2\text{R}_2}{\displaystyle\left|1+\text{j}\omega\text{C}_2\text{R}_2\right|}\\ \\ &=\frac{\displaystyle1}{\displaystyle\sqrt{1^2+\left(\omega\text{C}_1\text{R}_1\right)^2}}\cdot\frac{\displaystyle\omega\text{C}_2\text{R}_2}{\displaystyle\sqrt{1^2+\left(\omega\text{C}_2\text{R}_2\right)^2}}\\ \\ &=\frac{\displaystyle1}{\displaystyle\sqrt{1+\left(\omega\text{C}_1\text{R}_1\right)^2}}\cdot\frac{\displaystyle\omega\text{C}_2\text{R}_2}{\displaystyle\sqrt{1+\left(\omega\text{C}_2\text{R}_2\right)^2}}\\ \\ &=\frac{\displaystyle\omega\text{C}_2\text{R}_2}{\displaystyle\sqrt{\left(1+\left(\omega\text{C}_1\text{R}_1\right)^2\right)\left(1+\left(\omega\text{C}_2\text{R}_2\right)^2\right)}} \end{split}\tag5 \end{equation}

And for the argument:

\begin{equation} \begin{split} \arg\left(\space\underline{\mathscr{H}}\left(\text{j}\omega\right)\right)&=\arg\left(\frac{\displaystyle1}{\displaystyle1+\text{j}\omega\text{C}_1\text{R}_1}\cdot\frac{\displaystyle\text{j}\omega\text{C}_2\text{R}_2}{\displaystyle1+\text{j}\omega\text{C}_2\text{R}_2}\right)\\ \\ &=\arg\left(\frac{\displaystyle1}{\displaystyle1+\text{j}\omega\text{C}_1\text{R}_1}\right)+\arg\left(\frac{\displaystyle\text{j}\omega\text{C}_2\text{R}_2}{\displaystyle1+\text{j}\omega\text{C}_2\text{R}_2}\right)\\ \\ &=\arg\left(1\right)-\arg\left(1+\text{j}\omega\text{C}_1\text{R}_1\right)+\arg\left(\text{j}\omega\text{C}_2\text{R}_2\right)-\arg\left(1+\text{j}\omega\text{C}_2\text{R}_2\right)\\ \\ &=0-\arg\left(1+\text{j}\omega\text{C}_1\text{R}_1\right)+\frac{\pi}{2}-\arg\left(1+\text{j}\omega\text{C}_2\text{R}_2\right)\\ \\ &=-\arctan\left(\frac{\displaystyle\omega\text{C}_1\text{R}_1}{\displaystyle1}\right)+\frac{\pi}{2}-\arctan\left(\frac{\displaystyle\omega\text{C}_2\text{R}_2}{\displaystyle1}\right)\\ \\ &=\frac{\pi}{2}-\arctan\left(\omega\text{C}_1\text{R}_1\right)-\arctan\left(\omega\text{C}_2\text{R}_2\right) \end{split}\tag6 \end{equation}

In the case that \$\displaystyle\text{n}:=\text{C}_1\text{R}_1=\text{C}_2\text{R}_2\$, we get for the amplitude:

\begin{equation} \begin{split} \left|\space\underline{\mathscr{H}}\left(\text{j}\omega\right)\right|&=\frac{\displaystyle\omega\text{n}}{\displaystyle\sqrt{\left(1+\left(\omega\text{n}\right)^2\right)\left(1+\left(\omega\text{n}\right)^2\right)}}\\ \\ &=\frac{\displaystyle\omega\text{n}}{\displaystyle\sqrt{\left(1+\left(\omega\text{n}\right)^2\right)^2}}\\ \\ &=\frac{\displaystyle\omega\text{n}}{\displaystyle1+\left(\omega\text{n}\right)^2} \end{split}\tag8 \end{equation}

And for the argument:

\begin{equation} \begin{split} \arg\left(\space\underline{\mathscr{H}}\left(\text{j}\omega\right)\right)&=\frac{\pi}{2}-\arctan\left(\omega\text{n}\right)-\arctan\left(\omega\text{n}\right)\\ \\ &=\frac{\pi}{2}-2\arctan\left(\omega\text{n}\right) \end{split}\tag9 \end{equation}

  • \$\begingroup\$ I follow you until the (6) step. What are you essentially doing from there onwards? \$\endgroup\$
    – JohnnyB
    Nov 13, 2023 at 21:55
  • \$\begingroup\$ Step (6) entails getting the angle of the transfer function as a function of frequency. In the numerator of (4), \$\angle j C_2 R_2 \omega = 2 \pi \$. Each factor in the denominator has real part equal to 1 and imaginary parts equal to \$\omega C_1 R_1\$ and \$ \omega C_2 R_2\$. In the complex plane these are right triangles with angles equal to \$\arctan\left( \omega C_1 R_1\right)\$ and \$\arctan\left( \omega C_2 R_2\right)\$. As they are in the denominator, they should be subtracted from the angle in the numerator. The rest just deals with a (common) special case. \$\endgroup\$ Nov 14, 2023 at 3:49
  • 1
    \$\begingroup\$ @JohnnyB If you take a look at my edit, I show mathematically how I got the expressions. \$\endgroup\$ Nov 15, 2023 at 17:35
  • \$\begingroup\$ @CharlesB.Cameron you stated in your comment that \$\arg\left(\text{j}\text{C}_2\text{R}_2\omega\right)\$ equals \$2\pi\$ which is wrong, because \$\arg\left(\text{j}\text{C}_2\text{R}_2\omega\right)=\frac{\pi}{2}\$. \$\endgroup\$ Nov 15, 2023 at 17:37
  • \$\begingroup\$ Yes, thanks for the correction! \$\endgroup\$ Nov 15, 2023 at 23:12

Straight KCL Solution

The KCL for the four nodes is:

$$\begin{align*} \frac{1}{R_1}v_1+s C_1\, v1&=\frac1{R_1}v_{in}\tag{1} \\\\ s C_2\,v_2&=i_1\tag{2} \\\\ \frac{1}{R_2}v_3+s C_2\, v3&=s C_2\,v_2\tag{3} \\\\ 0&=i_2\tag{4} \end{align*}$$

(\$i_1\$ and \$i_2\$ are the opamp output currents.)

But you also know that \$v_2=v_1\$ and that \$v_{out}=v_3\$. You should be able to fill out your matrices from this and use the Schur complement method to solve from there.

But cheating and just using a solver:

from sympy import *                     # required once per session
from sympy.solvers import solve         # required once per session
e1 = Eq( v1/r1 + s*c1*v1, vin/r1 )      # KCL/nodal for v1
e2 = Eq( s*c2*v2, i1 )                  # KCL/nodal for v2
e3 = Eq( v3/r2 + s*c2*v3, s*c2*v2 )     # KCL/nodal for v3
e4 = Eq( 0, i2 )                        # KCL/nodal for vout
e5 = Eq( v2, v1 )                       # left ideal opamp
e6 = Eq( vout, v3 )                     # right ideal opamp
ans = solve( [ e1, e2, e3, e4, e5, e6 ], [ i1, i2, v1, v2, v3, vout ] )
{i1: c2*s*vin/(c1*r1*s + 1),
 v1: vin/(c1*r1*s + 1),
 v2: vin/(c1*r1*s + 1),
 v3: c2*r2*s*vin/(c1*c2*r1*r2*s**2 + c1*r1*s + c2*r2*s + 1),
 vout: c2*r2*s*vin/(c1*c2*r1*r2*s**2 + c1*r1*s + c2*r2*s + 1),
 i2: 0}
c2*r2*s/(c1*c2*r1*r2*s**2 + c1*r1*s + c2*r2*s + 1)

(I'm using freely available SymPy and SageMath for this -- they run on a variety of environments and use the Python language.)


The full matrix looks more to me like this:

enter image description here

But as shown with blue lines, you can strike the last column and the bottom row.

Striking those and if you call the upper-left 4x4 \$P\$ such that the above matrix can then be expressed in block form: \$\left[\begin{smallmatrix}P&Q^T\\Q&R\end{smallmatrix}\right]\$. Then if your column vector is \$\left[\begin{smallmatrix}\hat{v}\\\hat{e}\end{smallmatrix}\right]\$ and the result is \$\left[\begin{smallmatrix}\hat{0}\\\hat{i}\end{smallmatrix}\right]\$ so that \$\left[\begin{smallmatrix}P&Q^T\\Q&R\end{smallmatrix}\right]\left[\begin{smallmatrix}\hat{v}\\\hat{e}\end{smallmatrix}\right]=\left[\begin{smallmatrix}\hat{0}\\\hat{i}\end{smallmatrix}\right]\$, then \$\hat{v}=-P^{-1}Q^T\hat{e}\$.

P = Matrix([ [1/r1+s*c1,0,0,0], [-1,1,0,0], [0,-s*c2,1/r2+s*c2,0], [0,0,-1,1] ])
Q = Matrix([ [-1/r1,0,0,0] ])
ev = Matrix([ vin ])
for u in list( -P.inv()*Q.transpose()*ev ): simplify( u/vin )
1/(c1*r1*s + 1)                                      # v1
1/(c1*r1*s + 1)                                      # v2
c2*r2*s/(c1*c2*r1*r2*s**2 + c1*r1*s + c2*r2*s + 1)   # v3
c2*r2*s/(c1*c2*r1*r2*s**2 + c1*r1*s + c2*r2*s + 1)   # vout

Same result.


It's a bandpass, of course. If \$\tau_{_1}=R_1 C_1\$ and \$\tau_{_2}=R_2 C_2\$ then \$K=\frac1{1+\frac{\tau_{_1}}{\tau_{_2}}}\$, \$\omega_{_0}=\frac1{\sqrt{\tau_{_1} \tau_{_2}}}\$, and \$\zeta=\frac12\omega_{_0}\left(\tau_{_1}+\tau_{_2}\right)\$ or \$Q=\frac1{\omega_{_0}\left(\tau_{_1}+\tau_{_2}\right)}\$. Those can be plugged into the standard 2nd order bandpass transfer function form of your choice.


I have done a complete analysis. I hope the user's request is understandable and satisfactory.

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

  • \$\begingroup\$ Much respect for copy-pasting the entire MathCad notebook here :) It’s certainly, ah, not typical approach taken, but hey it works. Perhaps you could find a plug-in/script that outputs in latex, then you could paste text here. \$\endgroup\$ Nov 17, 2023 at 21:40
  • \$\begingroup\$ Please edit this answer with additional details rather than posting additional answers (e.g. your answer that began with "Clarification regarding my previous comment:"). \$\endgroup\$
    – Null
    Nov 17, 2023 at 21:45
  • \$\begingroup\$ MATHCAD 15 gives me the ability to create a PDF of the worksheet I created. Not knowing how to upload it here, I make copies with Paint page by page and publish them. \$\endgroup\$
    – Franc
    Nov 18, 2023 at 8:49

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.