12 opamps chained - measurements

*Sigh* We don't propose to add signals or their harmonics. What Mark and I are saying is that we should look at the transfer function, which is clearly scalar and looks like this: f(x) = a*x + b*x^2 + c*x^3 + d*x^4 + ...

When you multiply a pure sine, you get your harmonics from this.

Now all we are proposing is that you should multiply all your transfer functions, as is normal for signal chains, and do your analysis on the final signal.

Since all f2(x) to f12(x) are identical, their terms have the same signs, they even have the same coefficients. So it is safe to say that all 11 contributed equally to each harmonic.
 
Of course you can't tell from the THD figures alone because you've lost the phase information in the FFT analysis (or analog analysis).

If you have the polynomial for the transfer functions, you can simply multiply them and do your analysis. There isn't even any need for complex variables as long as you do not have any filters in the band you are looking at. So all you need to know about the phase of each harmonic is in the sign of the nonlinear coefficients.
 
If you are looking for the output distortions spectra, and x is the input signal (time dependent), then you cannot multiply the transfer functions to identify the global transfer function then take it's Fourier transform, even if the transfer functions are linear. You need to do a convolution. You can directly multiply transfer functions only in the frequency domain.

I'm done here.
 
syn08 is right. Deducing the distortion of one opamp from a chain of 12 is not simple math. From what I've read in this thread thus far, it seems those who argue that the distortion of each opamp is simply 1/11 or 1/12 of the output distortion are missing several key points (in addition to the central point about the vector math).

It's pretty darn unlikely that each opamp generates the same harmonic distortion. That's simply due to part-to-part variation, i.e., the variation in the individual transistors on die. The harmonics likely vary both in magnitude and in phase, so they could in theory cancel. Most likely they won't though - at least based on my experience with cancellation circuits in IC design.

Even if all the opamps were 100% identical and generated exactly the same harmonics (both in magnitude and phase), you would still have to account for the propagation/phase delay of each stage in the vector sum of the harmonics. Best of luck with the math. 🙂

Somehow, I don't think it is, at least not the ones I've tried. This is a sim I put together a few years ago.

The most reliable way to determine whether distortion is in the model is to look at the model file itself. If it's a device-based model, distortion is included (though not necessarily accurate). Most models are behavioural, though, and don't include distortion. I think there is a way to include distortion in a behavioural model with a separate distortion statement, but I'm not an expert in SPICE models. All this becomes a moot point if the model is encrypted.

In my general experience I've found that if the simulator says that the distortion is ultra low, the circuit is likely not fundamentally broken. But I don't find simulation of distortion to be a useful predictor of the actual THD of the circuit. At least not if the simulator claims THD below, say, -100 dBc.

I do realize that some may not like the "lower the loop gain trick". If you're in that category, I recommend building an active filter to clean up the signal source and a notch filter to null out the fundamental so you can measure the distortion components. Elliptical filters can be handy for the source filter as they allow you to place the zeros at harmonics of the fundamental. See attached amplitude response for an example.
Alternatively, use a circuit like Cordell's Distortion Magnifier (or Baxendal's original circuit that inspired the Distortion Magnifier).

That said, it sounds like OP was mostly interested in whether a chain of opamps would corrupt the signal. It seems the answer is 'no'. That's a useful answer too. 🙂

Tom
 

Attachments

  • AP Source Filter_ Amplitude Response.png
    AP Source Filter_ Amplitude Response.png
    32.7 KB · Views: 156
syn08 is right. Deducing the distortion of one opamp from a chain of 12 is not simple math.

Did some statistics math, and in very simplified and restrictive conditions (distortions can take 4 values "A-small", "B-medium", "C-large", "D-very large" with equal probabilities, and the distortion spectral distribution of each op amp is absolutely random) and assuming for each op amp THD(i)=SQRT(Ai^2+Bi^2+Ci^2+Di^2), then if N op amp gain stages are placed in series, then the total THD converges with N to SUM(THDi)*SQRT(N)/N Otherwise said, the total THD is SQRT(N) times larger than the average THD of the op amps.

It would be interesting to verify this theoretical result with the 12 opamps results. I doubt if will fit, though, the statistical model it too far from reality.
 
I think it is very unlikely that op-amps from the same type and batch produce uncorrelated distortion, but even-order distortion may tend to cancel because the even and odd op-amps in the chain are driven in opposite directions.

I think capslock shouldn't use the term transfer function because that usually means some expression in s that shows the dynamics rather than the distortion. No idea what the correct term would be, though - input-output relation or so?
 
Last edited:
The transfer function in s is originating from the differential equation governing the circuit, through y'->s*Y(s)-y(0) y''-> s^2*Y(s)-s*y(0)-y'(0) etc... where y(t) is a solution of this differential equation.

Then using t->sin(wt) the "input-output" relationship y=y(sin(wt)) could be calculated. A mathematical nightmare.
 
The point is when the distortion components are small, their interactions are even smaller and can be ignored, so you can assume that things build up cumulatively to a first approximation.


Take the function f(x) = x + 0.001 x^2
f(f(x)) = x + 0.002 x^2 + 0.000002 x^3 + 0.000000001 x^4


Distortion has to be quite gross before this breaks down.

You are absolutely right, of course, except for the possible cancelling of even-order distortion due to every other stage being driven in the opposite direction.
 
I think it is very unlikely that op-amps from the same type and batch produce uncorrelated distortion [...]

I'm curious what you base that on.

If you're comparing the distortion of opamp A and opamp B in a dual opamp, you might find that they're somewhat correlated. But even that hinges on some assumptions that could work both with you and against you.
For example, it's pretty rare that a dual opamp is two copies of the same layout on one die. More commonly, it's a two-opamp layout. Maybe the two channels share the biasing circuit. If you manage to get good matching between devices (this is not a given) the two channels could show similar distortion performance.

Similarly, you may find that two dice that sit adjacent on the wafer show similar performance - at least if they're both away from the edge of the wafer.

Having looked at a few odd yield patterns during my time in the industry, I would hesitate to make any predictions about the correlation in distortion (or any other precision parameter) between two randomly chosen dice from the same wafer. And all bets are off if you start comparing devices from different wafers.

A typical lot (= batch) would be many wafers, each containing thousands of dice. Best of luck finding two that match. 🙂

Tom
 
As far as I know, except for the even-order distortion cancellation in the input differential pair, there is nothing distortion-related in an NE5532 that requires tight matching. That's why it would seem likely to me that Mark's op-amps distort similarly, except for even-order slewing-induced distortion (that is, even-order input differential pair distortion).
 
I guess it needs some more research to be sure - somewhere I have a ZIF SOIC8 socket I could use, and try the noise-gain trick to make an easier to use distortion measurement setup.
And I need to include the harmonics' phases in the output from my Python script too.
 
Identical topologies tend to have similar quirks: variations in process or components result in different numerical values, but all the transfer curves (I mean Vout vs. Vin, not frequency or time domain) belong to the same family: for example, a sigmoid curve will be shifted, have slightly different slopes at various spots, but the general look will generally remain the same.
There are certainly exceptions: in circuits using some form of error correction, the nominal curve should be straight line, but deviations from the ideal will result in more or less random effects
 
If two opamps from the same part # etc would show dissimilar performance, we could throw all our data sheets away.

Part-to-part variation is a fact. It's even included in the data sheet in the form of test limits (min/max specs). Some data sheets even include the histogram of whatever the money spec for the particular part is for a significant sample size. See the offset voltage distribution plots in the LMP2021 data sheet for example. You can throw the data sheets away if you want. 🙂

Tom
 
Well I now have a new piece of testgear to probe my 12 opamp chain, namely the QA403 audio analyzer, so I've revisited this circuit and plotted some THD v. frequency and THD v. level plots:
ne5532_12_series_1kHz_powersweep.png


Since the chain consists of one follower driving a chain of 11 inverting unity-gain stages only the first opamp can contribute common-mode distortion, which I suspect is some of the rise past 3dBV here - below this level the noise floor is rising as normal.
Perhaps there are other mechanisms for rising distortion with level, after all with 18V supply rails you'd expect good performance upto about 20dBV. Perhaps there is injection of non-linear signals from the supply rails somewhere - the circuit only has 100nF decoupling caps.

At 3dBV I swept for frequency (I think with a 20kHz BW, but I'm not totally sure):
ne5532_12_series_3dBV_sweep.png


I guess the plot above 5k or so isn't really informative as a result - you'd expect it to rise noticably above 10k but that's not available.
 
  • Like
Reactions: rsavas