till.com Articles

Distortion Spectra and Small Amounts of Feedback

J. Donald Tillman
March 2025

The folklore in the audio community has described the parabolic and exponential transfer functions of vacuum tubes and tranistors, noted that driving them with a pure sine wave will result in identifiable harmonic distortion spectrums, and suggested that these spectrums are inate audible characteristics of the devices. Which seems reasonable. I discussed the spectral attributes of device nonlinearites in a previous article. [Reference]

Practical electronic circuits have much opportunity to deviate from abstract theoretical curves. Here I explore how even the smallest amounts of feedback can significantly alter the distortion spectrum.

The math and graphics here were all implemented with Jupyter Lab, Python, and the numpy, matplotlib, and scipy libraries. The source code is available here [Reference].

Negative Feedback Background

Negative feedback has been used in audio circuits in many ways, for many purposes, and in various amounts for a very long time. And feedback is used both locally for a single stage and globally across multiple stages. In fact, it is difficult to find examples of audio circuitry without negative feedback.

In general, the effects of negative feedback are to:

Figure 1 shows a basic voltage-input / voltage-output gain circuit as a block diagram with a negative feedback loop that subtracts a fraction of the output voltage from the input voltage before the core gain stage.

block diagram
Figure 1 Block diagram of a feedback system.

We can derive an equation from this circuit:

$$ V_{OUT} = A_{OL} (V_{IN} - \beta V_{OUT}) $$

And solving that for \(V_{OUT}\) we have:

$$ V_{OUT} = \frac{A_{OL}}{1 + \beta A_{OL}} V_{IN} $$
Where:
\(V_{IN}\) is the input voltage signal, \(V_{OUT}\) is the output voltage signal, \(A_{OL}\) (for "Amplification, Open Loop") is the gain of a possibly nonlinear voltage amplifer, \(\beta\) is an attenuation, a value between zero and one.

And so the resulting gain, which we call the closed loop gain, is:

$$ A_{CL} = \frac{A_{OL}} {1 + \beta A_{OL}} $$

The amount of feedback is expressed as the loop gain, the total gain around the loop, and by convention as a positive number with the understanding that there is a subtraction at some point.

$$ LG = \beta A_{OL} $$

The amount of feedback is also expressed as a dB value of the difference between the open loop and closed loop gains:

$$ FB = 20 \space log(1 + \beta A_{OL}) \text{ dB} $$

The amount of feedback can vary wildly in practice. We often see low feedback situations with a feedback factor of less than 10 (or 20dB). Or medium feedback systems with a feedback factor of 10 to 100 (20dB to 40dB). High feedback systems include multiple stages, operational amplifiers, and servo control systems, and these often see a feedback factor from 100 (40dB) to well over 100,000 (100dB).

Any feedback system has the potential for instability if phase shifts or time delays can turn the intended negative feedback into an unintended positive feedback, and causing ringing or oscillation. This becomes a more serious issue as the loop gain is increased. Generally high feedback systems incorporate a dominant single-pole low pass response to keep the loop gain below unity at high frequencies where the phase shifts of multiple poles start accumulating.

But here we are only going to be discussing circuits with very small amounts of feedback.

Linearization

From the above equation for closed loop gain, \(A_{CL}\), we can see that negative feedback not only reduces the gain, but reduces the sensitivity to changes in the open loop gain. This can be practical. As an example, junction field-effect transistors (JFETs) generally have a wide range of forward transconductance values due to manufacturing tolerances and all. So negative feedback can tame that variation.

We can calculate this effect by taking the derivative of the closed loop gain with respect to the open loop gain for a given level of feedback:

$$ \frac{d A_{CL}}{d A_{OL}} = \frac{1}{(1 + \beta A_{OL})^2} $$

Or:

$$ \frac{d A_{CL}}{d A_{OL}} = \frac{1}{(1 + LG)^2} $$

This shows a square law effect as an increase in forward gain also effectively increases the amount of feedback.

If our device has a nonlinearity, then the transfer function, \(V_{OUT} / V_{IN}\), will show a slight curve instead of a straight line. And the application of feedback will tend to reduce the slope of the curve, reducing the steeper portions of the curve more, reducing distortion and possibly changing the nature of the distortion. And we can calculate that effect.

Parabolic Transfer Function

The parabolic or square-law transfer function is a nonlinearity that is in an interesting position; with a sinusoid input it only creates 2nd harmonic distortion. And this is regardless of the signal level of any offset voltage. And this is a direct result of the trigonometric identify:

$$cos^2(x) = \frac{cos(2x) + 1}{2} $$

Consider a gain stage with a square law nonlinearity, such that a ±1.0 V sine wave input signal produces harmonic distoriton level of 10%.

$$ V_{OUT} = (V_{IN} + 2.5)^2 $$

In my previous article I introduced a triptych distortion display to 1., plot the nonlinear transfer function curve, 2., the distorted sine waveform, and 3., the distortion spectrum, all together. It can be enlightening to see a mechanism from multiple angles at the same time. In order to compare nonlinearities, the transfer function is displayed normalized to a ±1.0 Volt input, a ±1.0 Volt output, and a positive polarity. And in the interest of illustrating the effects, I run these examples at a total harmonic distortion level of 10%, certainly more than typical.

Distortion spectrum of a parabolic transfer function.
Figure 2 Distortion spectrum of a parabolic transfer function.

Figure 2 is a distortion triptych for a parabolic transfer function and, as expected, the distortion is entirely 2nd harmonic; a very distinctive effect.

But how is this affected by the presence of feedback? There is no direct mathematical solution for this, so I used the Python fsolve() function to numerically calculate the modified transfer function and plot the changes in harmonic content over a range of feedback levels.

Note that because feedback reduces both the gain of a system and the input level to the nonlinear stage, a fair analysis requires increasing the input level by a factor of \(1 + \beta A_{OL}\), which is what I do in the plots here. This keeps the output level constant, matching practical needs and considerations.

Figure 3 shows how the harmonic content of a parabolic transfer function changes as feedback is applied. With no feedback we have just 2nd harmonic distortion in red. As the level of feedback is increased the total harmonic distortion is reduced, but the harmonic content changes significantly.

The harmonic spectrum levels of a parabolic transfer function
                over a range of feedback levels from 0 to 5, or 0dB to 15.6dB.
Figure 3 The harmonic spectrum levels of a parabolic transfer function over a range of feedback levels from 0 to 5, or 0dB to 15.6dB.

Since feedback changes the curve of the transfer function, a parabolic transfer function will no longer be parabolic, and the fingerprint or signature of the lone second harmonic disappears completely. And it only takes the slightest amount of feedback to introduce significant 3rd, 4th and 5th harmonics.

The maximum relative 3rd harmonic occurs with a loop gain of 1.3 for a feedback factor of 7.2dB, as seen in Figure 4. Thisis a very low level of feedback.

Parabolic transfer function with 7.2dB feedback.
Figure 4 Parabolic transfer function with 7.2dB feedback.

Peter Baxandall has found something similar [Audio Power Amplifier Design 5]. Instead of a computer simulation he worked out some math, built an FET test circuit, tweaked it for predominantly second harmonic distortion, made measurements with various levels of feedback, and handcrafted a plot with both theoretical and measured levels of distortion of the harmonics. (I, on the other hand, just wrote a few lines of code.)

His plot is shown in Figure 5. His X axis is reversed and with a log scale, but our results mostly agree.

Figure 5 From Peter Baxandall, “Audio Power Amplifier Design 5”, a plot presenting the results of testing a single FET amplifier circuit with variable feedback. The dots on the curved lines are circuit measurements, while the dashed lines are theoretical distortion calculations.
Baxandall's parabolic distortion with feedback

Exponential Transfer Function

Bipolar transistors can operate in a wide range of configurations. In a current-in/current-out situation, the transfer function is remarkably linear. And in a voltage-in/current-out situation, the transfer function is exponential, sometimes to a very high level of precision.

For an exponential transfer function adjusted for a 10% Total Harmonic Distortion level with a ±1.0V input, the transfer function is:

$$ V_{OUT} = e^{0.4 V_{IN}}$$

And the distortion triptych is shown in Figure 6; mostly 2nd harmonic content, some 3rd harmonic, and trace amounts of others trailing off rapidly.

Distortion spectrum for an exponential transfer function.
Figure 6 Distortion spectrum for an exponential transfer function.

The folklore has suggested that exponential bipolar transistor nonlinearities create mostly odd harmonics, but that is not the case. It is true the exponential transfer function has some 3rd harmonic content, in comparison to a square-law transfer function which has none, but the odd harmonic content is very small. The level of 3rd harmonic compared to the level of 2nd harmonic will be roughly the same as the level of 2nd harmonic compared to the intended sine wave.

Figure 7 shows how the harmonic spectrum changes as feedback is added. It starts at the same levels as shown in the distortion triptych above, the second harmonic level drops steadily, and the harmonics above that take turns nulling out. This nulling is due to the polarity of the harmonic changing.

The harmonic spectrum levels of an exponential transfer function
                over a range of feedback levels from 0 to 5, or 0dB to 15.6dB.
Figure 7 The harmonic spectrum levels of an exponential transfer function over a range of feedback levels from 0 to 5, or 0dB to 15.6dB.

Peter Baxandall found a similar effect [Audio Power Amplifier Design 6]. Here he built a bipolar transistor version of his FET test circuit, tweaked it for exponential distortion, made measurements with various levels of feedback, and handcrafted a plot of the distortion harmonics.

Figure 8 From Peter Baxandall, “Audio Power Amplifier Design 6”, a plot presenting the results of testing a single bipolar transistor amplifier circuit with variable feedback. The dots on the curved lines are circuit measurements, the dashed lines are theoretical distortion calculations.
Baxandall's exponential distortion with feedback

The nulling out of the 3rd harmonic above suggests that we can take a bipolar junction transistor stage with an exponential transfer function and apply a small amount of feedack to create something very close to a square-law transfer function. That value is a feedback loop gain of 0.5, or 3.5dB, as shown in the distortion triptych in Figure 8.

Exponential transfer function with 3.5dB feedback
Figure 8 Exponential transfer function with 3.5dB feedback.

Summary

The folklore has told us that square-law devices are tightly linked with even-order distortion products and exponential devices are tightly linked with odd-order distortion products. An actual analysis is far more interesting, and small amounts of feedback can drastically alter the attributes of the distortion products.

Figure 4, above, shows a parabolic transfer function with 7.2dB of feedback looking remarkably similar to an exponential transfer function. And Figure 8 above shows an exponential transfer function with 3.5dB of feedback looking remarkably similar to a square-law transfer function.

These are very low levels of feedback, far less than you'd typically see in a circuit employing feedback for distortion reduction.

Source Code

The Jupyter Lab source code for the diagrams in this article is available on Github here: https://github.com/dontillman/distortion-article.

References

Copyright 2025 J. Donald Tillman, don -at- till.com