There are at least two simple ways to apply feedforward distortion nulling to the original MJR-7 amplifier, one being to amplify and invert the signal at the input transistor emitter and then add this to the amplifier output. This has the advantage of being able to null virtually all the amplifier distortion. If most of the distortion we want to reduce is added by the output stage, as is often the case with a class-B or class-AB amplifier, then the method shown next is a little simpler, requiring only a unity gain buffer stage to supply the feedforward signal current.
Suppose the distortion at the output of the original MJR-7 was 0.0002% at 1kHz. Most of this will be caused by output stage non-linearity, and the effect of the feedback will be to apply a distortion signal to the input of the output stage sufficient to cancel most of the open-loop distortion at the output. If we measured the closed-loop distortion at the input of the output stage it would be something like 2%, around the same level as the open-loop output stage distortion. The really useful thing about this 2% distortion is that if the input and driver stages are linear it will be identical to the output distortion except for being ten thousand times greater, and also inverted. This is exactly the sort of thing we need if we want to apply error feedforward. Connecting a resistor, about 1k, at one end to the driver stage output, and at the other end to the output after the inductor will feed forward this inverted and amplified error signal, and will give output stage distortion nulling if the inductor has a small series resistance, about 0.1ohms, and is increased to about 3uH to compensate for falling driver stage gain at higher frequencies. With distortion D applied to the load via 0.1ohms and -10,000D applied via 1k the distortion reaching the load will be zero.
Note that with a 1V output signal level, D will be around 2uV, and 10,000D is then about 20mV. This 20mV is the 'pre-distortion' necessary such that the distortion then added by the output stage straightens it out enough to leave just the 2uV closed loop output distortion together with the 1V undistorted signal. That is about the most we can do with feedback alone while maintaining an adequate stability margin, but adding the feedforward can then null the distortion at the load, limited primarily by our ability to detect the distortion as we adjust the feedforward components to reduce it.
This is more or less the same method used in the Quad 405 'current dumping' amplifier, just another way of looking at it. The Quad version used a feedback capacitor to accurately define the gain of the driver stages rather than use the open-loop gain as in my example. (The open-loop gain is not exactly predictable, so for accurate nulling a trimmer would be needed for the feedforward resistor.) To work well we need input and driver stages with distortion lower than the output stage - not too difficult with over 1% distortion from a single pair of lateral mosfets - and a driver stage with low output impedance so that the non-linear input impedance of the output stage adds little further distortion.
In practice a larger output inductor will pick up more distortion from stray magnetic fields, and without careful layout could even add more distortion than we started with. The damping factor will also be reduced. By reducing the feedforward resistor we can reduce the inductor and its series resistance, but then we need more feedforward current.
Any amplifier using negative feedback round a loop including the output stage can in principle use this technique. Output stage distortion is reduced at its output and increased at its input as the feedback is increased, though not by the same factor. Unless very high feedback loop gain is used the feedforward resistor needed may have an inconveniently low value, and a high driver stage current could then be needed to drive this resistor. The Quad 405 used a 3uH inductor as in my example above, but also used a 47R feedforward resistor and a driver stage current of 50mA.
In the first diagram on this page I took the output distortion before the inductor to be D, and this is total closed-loop distortion. The distortion fed back to the input of the amplifier is then divided by 20 because of the feedback network. This is only correct when the signal source has zero impedance, so in practice there will be a correction needed to compensate for this. The nulling must therefore be adjusted with the correct source impedance, and that impedance must remain unchanged to maintain minimum distortion. With my own amplifiers I take the input direct from the volume control, which connects direct to the CD signal source (on the principle that 'the best pre-amp is no pre-amp'). This unfortunately makes the source impedance variable, and so the distortion nulling will only be accurate at one or two volume settings. A solution is to add a unity gain buffer to the input. On the plus side we can then reduce the impedance of the feedback components, and then the noise level, although not excessive to start with, will reduce further. As with all my previous designs the priority is to reduce crossover distortion, there being no point worrying about low levels of second or third harmonic distortion, so the buffer need not be designed for the ultimate in low distortion figures.
At higher input frequencies distortion nulling becomes more difficult, and some phase trimming becomes necessary. There seems little point trying to accurately null distortion components far above 20kHz except to achieve impressive specifications. With a conventional circuit low THD at 20kHz input may be a useful indicator of high frequency linearity, but with feedforward this becomes almost entirely irrelevant because all audio frequency distortion added by the output stage can in principle be nulled irrespective of its cause. It makes no difference to the nulling if a 3kHz distortion component is the 3rd harmonic of 1kHz or an intermodulation product of 17kHz plus 20kHz.
I tried a few simulations to see what frequency range the nulling was effective at, and to determine how to add trimming for high frequencies. The next plot is probably unrealistic, it shows the distortion level based on a linear approximation in which 1% open-loop distortion is added to the output stage. The red trace is without feedforward, and the 1.0m level is equivalent to 0.001% distortion. The distortion level at 10kHz is the level of an output distortion component at that frequency, not the distortion of a 10kHz input, so the upper limit agrees with my original specification that 'distortion components up to 20kHz are under 0.001%'. Adding the feedforward the distortion components are in green, and only rise to 0.0001% at 20kHz. This is almost certainly over optimistic, one reason being that input and driver stage distortion are ignored. What it does clearly show is how well the feedforward works to reduce output stage distortion at higher audio frequencies where feedback alone is becoming increasingly ineffective. The trimming components added for best results are included in the final circuit, and are 22n plus 100R connected across the feedforward resistor.
The earlier explanation starts with "Suppose the distortion at the output of the original MJR-7 was 0.0002% at 1kHz". In fact the Mk5 version is even better than this, which is why there is really no serious point to this improvement other than as a demonstration of the application of feedforward. The Quad 405 used an unbiased class-B output stage, so the distortion without feedforward would have been poor, and so there really was a serious point in that design.
The final circuit uses a class-AB buffer stage. A LED is used to bias the feedforward stage and the variable mosfet bias is also derived from this. I have added a LM234 current source, with 12R current setting resistor to give 5mA. The buffer stage transistors need small heatsinks. The feedforward output circuit adds high frequency trimming with a 22n capacitor, which the above simulation suggests is about optimum if we want to minimise distortion components up to 20kHz. The 2u2 in series with the feedforward resistor reduces the effect at low frequencies, where it is not needed, and anyway phase shifts would make it less effective.
The range of bias voltage for the mosfets is in theory too low, the range needed to ensure 100mA quiescent current can be set is about 0.3V to 3V, but all the mosfet pairs I tried so far needed around 1.2V, so the LED voltage, about 1.8V, is probably high enough in practice. If the full 100mA could not be set this may not be a serious problem, the feedforward would have more work to do, but the overall result should still be good.
The feedforward effect depends on the open loop gain of the whole amplifier, so it is not just a feedforward output stage, and it is not possible to just add this output section to any alternative input stages unless they match the gain of my own input stage.
Initial tests showed that for best distortion nulling the feedforward resistor needed reducing to 46R, which is lower than my simulations suggested. I had assumed the output inductor L1 to be 0.5uH, but the resistor value needed would be explained if it was 0.4uH. Calculations and more recent measurements had given values greater than this, but it appears that the earlier value I measured could be about right.
I have a formula to calculate the inductor value, but previous experience suggests that this is seriously inaccurate, so some experimentation will be needed :
L (uH) = D2N2 /(L + 0.45D) for N turns, dia. D, length L (metres).
The problem with a low value inductor is that the feedforward buffer stage then needs to operate at a higher quiescent current to ensure it stays in class-A at high outputs. The transistors already run hot, so better heatsinks are needed, but another option is to increase the inductor a little. Using 20swg wire instead of 18swg and using 17 turns instead of 13 the dimensions can be kept unchanged while increasing the value to 0.68uH. I will add these changes to my own final version, but the distortion tests have been completed with the lower value inductor.
Here is a photo of the MJR9 board, showing just one channel. It can be seen that there is not much room for the heatsinks, and some redesign of the layout would be needed to make any big improvement. Painting the heatsinks black could help, but probably not enough. This is the most recent version with a 17 turn inductor.
Here is the test setup using a signal generator I made myself many years ago, plus my EMU-1820M. The small white circuit board is the distortion extraction circuit which nulls the test signal by typically 40dB. An oscilloscope and voltmeter are also used, primarily to setup signal levels. The signal generator can produce sine and square waves and also tonebursts. A single frequency oscillator is also included for intermodulation tests, and was originally 19kHz but has drifted upwards a little over the years.
As usual the test signal is partly nulled, and the -10dB level is calibrated by a 100mV rms signal. The distortion relative to the 4V output level is therefore given by adding 22dB to the scales.
The feedforward only affects the distortion, and other test results and specifications from the earlier MJR7 versions should still apply. Harmonic distortion at 1kHz, 10kHz and 20kHz test frequency was measured with 4V rms output into a 7R5 load. The aim with all my recent class-B or class-AB designs has been to reduce crossover distortion, and the signal level is what I have found most clearly reveals this. At lower levels the amplifiers can stay in class-A and the distortion then falls under the noise level, making measurement difficult. At higher levels the signal spends less time in the crossover region and the effect can become less significant. Intermodulation between 19kHz and 20kHz was also checked.
First at 1kHz, only the second harmonic is visible at -126dB (0.00005%). Carefully trimming the feedforward and adjusting the supply wiring to reduce pickup I could get the figure down under -130dB, but I wanted to keep the same settings for all test frequencies. A small adjustable resistance in series with the inductor could possibly provide more accurate nulling here.
Next at 10kHz two results are shown to illustrate a problem with feedforward adjustment. If I wanted the lowest distortion within the audio range I would only worry about the 20kHz harmonic and get the first result. If I wanted the best THD specification I would want to keep all harmonics low, and the second result could be better because the 3rd harmonic has been reduced lower. The high frequency phase trimming has been optimised in the simulation to give best distortion nulling up to 20kHz only, so I decided to use the first of these options.
Next at 20kHz the 2nd harmonic is at -123dB and 3rd at -120dB. The 4th is higher at -116dB, as expected the feedforward is becoming less effective at such high frequencies. Lower level components unrelated to the test signal were picked up from the nearby computer or other sources of interference.
Next, the 1kHz intermodulation produced by 19kHz plus 20kHz is -123dB. This is for a peak to peak test signal output of 11.2V, the same as the 4V rms sinewaves used previously. The rms ratio has been used rather than peak ratio (This is why the -120dB level marked on the picture is at a different level compared to the previous results.) The peak ratio would have been -126dB. There are higher order products at 2kHz and 18kHz around -130dB, plus a 15kHz spike from a nearby tv. The board was not well screened, as can be seen in a photo above, so the various interference components could be much lower when mounted in a case. (The ratio of distortion rms levels to total signal rms voltage has been given here, which I have since learnt is incorrect, the CCIF standard appears to require just one of the test signal components to be used as the reference level, so the 1kHz product should be specified as -120dB.) Later versions of the MJR7 have lower 1kHz components in this test, but the higher order components are worse.
The square wave tests and clipping tests on the MJR7-Mk5 test results page also apply to the MJR9, the feedforward has practically no effect on these. I am not entirely sure how crosstalk is affected, I have only made one channel into a MJR9 so far, but I can think of no reason why this would be much different to the Mk5 results.
Here is a later distortion result at 10kHz, with the output inductor increased to about 0.7uH. The 20kHz second harmonic has now dropped into the noise somewhere under -130dB, but for some reason some of the higher harmonics have increased. I guess the increased inductor should have a higher parallel resistor, but trying to reduce components so far beyond the audio range was not a design aim.
ConclusionsI previously specified the MJR7 distortion as 'all audio frequency distortion components under -100dB (0.001%)' which is not the conventional way to specify distortion, but does at least describe the only distortion which could be audible if it was at higher levels. A similar specification for the MJR9 would be 'all audio frequency components under -120dB (0.0001%)' provided the feedforward is adjusted for minimum distortion components up to 20kHz. The distortion specification limit is probably set by supply breakthrough, input stage distortion, and the limitations of the test equipment I have available.
To avoid losing contact with reality I have marked the 300uV level on the harmonic distortion traces to show the lowest signal level I found to be audible to someone with excellent hearing at 3kHz at 1 metre from one of my Mordaunt-Short MS20 speakers (87dB per watt at 1m. so 300uV is theoretically a 7dB sound level, which is about the lowest level we could expect to hear with masking from typical domestic background noise.) At much higher or lower frequencies, or with the masking effect of the music, or at a normal listening distance, even distortion at this level will be inaudible. Whether the second harmonic of 10kHz is 45dB or 50dB under the 300uV level is clearly of no real importance. With conventional CD music sources at moderate levels with speakers having a reasonable impedance even the original MJR6 has distortion well below audibility. Most DIY enthusiasts are unlikely to have test equipment suitable for adjusting the distortion nulling of the MJR9, so my current recommendation has to be the MJR7-Mk5, which gives excellent results, actually as good as or better than the MJR9 at low to medium frequencies, without any fine adjustments.