So I am building and analyzing a Class AB / push-pull amplifier implemented with MOSFET as depicted in the following schematic: Class AB Amplifier

R2 is the load. The input is an AC signal with 3V amplitude and 1KHz frequency. I am trying to determine output impedance and doing the usual way where I turn off the input signal and inject a test voltage to measure the current and then calculate impedance, I get around 150 \$\Omega\$. However, I am also trying to do it the way my professor suggested, which is what I'm having issues with.

He said to think of the load as a voltage divider and that I could measure the output impedance by just simply changing the load.

So that makes sense to me. After all, looking at the following image:

The load and the output impedance can be modelled as a voltage divider network. I can put the amplifier under the same two known loads and solve both equations simultaneously and solve for \$Z_{out}\$. I can rewrite the equation for \$Z_{out}\$ using \$V_{L1}, V_{L2}, R_{L1}, R_{L2}\$ (voltage over load for the first and second load) without involving \$V_{out}\$.

This is where I'm stuck. Doing the above, I get:

\$V_{L1} = V_{out} \times {R_{L1} \over Z_{out} + R_{L1}} \Longrightarrow Z_{out} = V_{out} \times {R_{L1} \over V_{L1}} - R_{L1} \$

and obviously the same is true for the second load:

\$ Z_{out} = V_{out} \times {R_{L2} \over V_{L2}} - R_{L2}\$

Now, since the output impedance doesn't change regardless of the load, the two equations are equal:

\$ V_{out} \times {R_{L1} \over V_{L1}} - R_{L1} = V_{out} \times {R_{L2} \over V_{L2}} - R_{L2} \$ and so \$ V_{out} \$ cancels out on both sides.

However, I don't know where to go from here. I can't solve that equation cause there isn't enough information to solve it; I would need a second constraint because obviously that equation has an infinite number of solutions.

So I tried a different route:

\$ Z_{out} = V_{out} \times {R_{L2} \over V_{L2}} - R_{L2} \$


\$ V_{out} = {(Z_{out} + R_{L1})V_{L1} \over R_{L1}} \$

Solving both of these together by replacing the \$ V_{out}\$ expression in the \$Z_{out}\$ equation I get:

\$ Z_{out} = { R_{L1}R_{L2}(V_{L1}-V_{L2}) \over R_{L1}V_{L2} - R_{L2}V_{L1} } \$

I tested this out with two loads and measured the voltages:

\$R_{L1} = 10k\Omega \text{ & } V_{L1} = 5.9V\$

\$R_{L2} = 1k\Omega \text{ & } V_{L2} = 5.4V \$

Using the values above, I get \$ Z_{out} = 103.95 \Omega\$ which is close enough to the value I got with the original method.

But then I repeated the calculation with a different load:

\$R_{L1} = 1k\Omega \text{ & } V_{L1} = 5.4V\$

\$R_{L2} = 100\Omega \text{ & } V_{L2} = 3.3V \$

and I got a different value \$Z_{out} = 76.09\Omega\$

So, I don't know where to go from here.

Is my derivation wrong?

What should I try next?

I'm not asking for anybody to do my homework, just for guidance

Thank you!

EDIT: Am I not supposed to repeat the calculations with such a low load? I retried with loads of 1k or higher and I get the same impedance of about 103. I'm thinking maybe since the load is so small that it's close to the output impedance, that's affecting the calculations. I've read that an effective damping factor is chosen so that \$ R_{load} >> R_{out}\$ so I do get the right result when I use a load that's much higher than the output impedance.

  • \$\begingroup\$ The amplifier is almost certainly not linear over such a large range of loads with a large input. Try measuring with a much smaller input, say 30 mV instead of 3V. \$\endgroup\$
    – τεκ
    Commented Dec 6, 2020 at 22:20
  • \$\begingroup\$ @τεκ hmm that's a good point. I tested it out with a 30mV signal and I got around the same number (105ohms). The good thing is that this time, even with a smaller load like 100ohms, I was able to get a consistent output impedance (106ohms). So thank you for that; that explains why it wasn't working well with a smaller load. So I'm assuming the method is correct, right? Thank you! \$\endgroup\$
    – Kevin KZ
    Commented Dec 6, 2020 at 22:30

1 Answer 1


Something seems to have gone wrong in your derivation. I used a symbolic math package (sympy) to solve the equations:

$$V_{out}\frac{R_1}{R_1+Z_{out}} = V_1$$ $$V_{out}\frac{R_2}{R_2+Z_{out}} = V_2$$

and this results in this expression for \$Z_{out}\$:

$$Z_{out} = \frac{R_1R_2(V_1-V_2)}{R_1V_2-R_2V_1}$$

Plugging in your values results in \$104\Omega\$.

  • \$\begingroup\$ I forgot to update the original post but I did figure it out. The expression for \$Z_{out}\$ that I got matches what you got. I had omitted the minus between \$V_1\$ and \$V_2\$ by mistake when writing the post but I did have that in my actual derivation. Thank you! Also, I should look into sympy; while my algebra skills are top notch, I could use with an automated system that does it for me instead of reworking every single step when I am trying to iron mistakes out. \$\endgroup\$
    – Kevin KZ
    Commented Dec 8, 2020 at 20:43

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.