I think you have to add one more equation \$ \frac{\text{Vx}-\text{V1}}{R}+\mathcal{C} s (\text{Vx}-\text{V2}) == 0\$ and solve for \$V0\$ as well. Also your first equation needs to have the term \$ 2 \mathcal{C}\$ instead of \$ \mathcal{C}\$.

Computations using Mathematica.

```
sols = Solve[{
(V1 - Vi)/R + (V1 - Vx)/R + (V1 - V0) s 2 \[ScriptCapitalC] == 0,
(V2 - Vi) s \[ScriptCapitalC] + (V2 - Vx) s \[ScriptCapitalC] + V2/(R/2) == 0,
Vx == (RA V0)/(RA + RB),
(Vx - V1)/R + (Vx - V2) s \[ScriptCapitalC] == 0}
,
{V1, V2, Vx, V0}
];
tfm = TransferFunctionModel[V0/Vi /. sols[[1]] // Simplify, s]
```

Special cases:

\$RA = 0 \$, and any value of \$RB\$

tfm /. RA -> 0

\$RB = 0 \$, and any value of \$RA\$

tfm /. RB -> 0

\$R = 0 \$, and any value of \$\mathcal{C}\$

tfm /. R -> 0

\$\mathcal{C} = 0 \$, and any value of \$R\$

tfm /. \[ScriptCapitalC] -> 0

These are notch filters when \$\text{RA}<\text{RB}\$.

```
values = {0.01, 0.1, 1, 10, 100, 1000};
Table[tfm /. {RA -> 1, RB -> 10, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values]
```

They are still notch when \$\text{RA}>\text{RB}\$.

```
Table[tfm /. {RA -> 10, RB -> 1, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values, PlotRange -> All]
```

If \$\text{RA}=\text{RB}\$, it turns out to be "all-pass" filters.

```
Table[tfm /. {RA -> 1, RB -> 1, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values, PlotRange -> All]
```

Can anyone offer guidance?

I'm thinking the big issue you have is R3 in that it goes to ground half way along the feedback path. If so then my advice is convert Vo, R3 and R4 to a much smaller voltage source (Vx) in series with one resistor.

- Vx will be Vo.R3/(R3+R4)
- Series resistance will be R3||R4

It's just nortons and thevenins theorums I'm using.

Now you have a voltage source Vx in series with Rx where Rx is R2 + R3||R4.

Now go about applying the feedback in your equations but using the above.

## Best Answer

I realize that I derived the transfer function of this bandpass filter in Transfer function of a bandpass filter without documenting how I got \$H_0\$. Let's consider the circuit in which I replaced the resistive divider made of \$R_4\$ and \$R_5\$ by a ratio \$k\$ equal to \$\frac{R_5}{R_5+R_4}\$. The schematic is below:

First, considering an open-loop gain \$A_{OL}\$, I can determine the voltage at the low-side op amp output: \$V_{o2}=V_{out}(k-1)A_{OL}\$. Then, by using superposition, I can get the voltage at node (2), the junction of \$R_1\$ and \$R_2\$: \$V_{(2)}=V_{in}\frac{R_2}{R_2+R_1}+V_{o2}\frac{R_1}{R_2+R_1}\$. Finally, the output voltage is the voltage at node (2) minus \$V_{out}\$ times the open-loop gain because no current flows through \$R_3\$ considering infinite input resistances for both op amps. Substitute and rearrange to obtain the definition of \$H_0\$:

\$H_0=\frac{R_2}{\frac{R_2}{A_{OL}}+\frac{R_1}{A_{OL}}+R_1+R_2+R_1A_{OL}(1-k)}\$

With a 100-dB (100k) open-loop gain for the op amps and a 1-V bias, the output is 64 µV as confirmed by simulation and Mathcad:

The dc gain in this case, when \$s=0\$ is -83.9 dB. As \$A_{OL}\$ approaches infinity, the output voltage is 0 V. A tricky little circuit! : )