Low Distortion Signal Generator Design. Part 2.
There are a few published designs with 1kHz distortion specification better than -140dB. Achieving such low levels is limited by the level stabilisation method used, not by the amplifiers. Around 1978 I made a simple discrete component unity gain inverting amplifier with 2nd harmonic of 2kHz at 1V peak measured at under -140dB (0.00001%). That circuit could easily be improved on. Discrete component amplifiers become rather less attractive when we need 3 or 4 for a state variable type oscillator, but there are alternatives where a single amplifier is the only important source of distortion, apart from the level stabilisation circuit, and so this type will be considered first.
A Single Frequency Twin-T Generator
The first level stabilisation circuit I want to try is the simplest, using a low power light bulb. This method was used by Bill Hewlett back in 1938, in a design which became the first Hewlett Packard product, the HP-200A. Some advice I found about Using lamps for stabilizing oscillators suggests that the best results are achieved by running a lamp at a tenth of its rated voltage, and it then takes about a quarter of the rated current. Lamp stabilisation has a few problems, but one really useful advantage is that the distortion it adds is almost entirely third harmonic, so distortion rejection using a notch filter becomes a more attractive option.
A fixed frequency example using a twin-T is shown next. This circuit is identical in operation to a design by John Linsley Hood, published in Wireless World, July 1979, page 66, Fig.9. That was a discrete component circuit, but apart from that the only major difference is that it used a R54 NTC thermistor for level control instead of a light bulb. For that example distortion at 1kHz was under 0.00015%, showing that this sort of circuit is potentially very good.
The light bulb is rated at 6V 16mA. The idea is to adjust the 220R in the twin-T circuit for the deepest null in the negative feedback and then adjust the 22k to set the output voltage level.
An advantage of the twin-T is that it can in principle be adjusted for a perfect null at one frequency, so there is then no negative feedback at that frequency, and the gain is limited only by the finite open-loop gain of the op-amp. The positive feedback signal level required for oscillation is then very low, and so any distortion from thermal modulation of the bulb or other sources can also be very low.
The problem with this is that small drifts in component values, either ageing or thermal, can cause a large variation in the depth of the twin-T notch, and so a large percentage variation of feedback voltage (Vx) may be needed. The solution used is an additional negative feedback path which can null some or all of the positive feedback, so that changes in output level can cause a wide range of variation of Vx, which can provide a variation from positive to negative feedback, and including zero feedback, so that even a perfect null would not be a problem.
Unfortunately the nulling of the positive feedback only reduces the fundamental frequency, the distortion from the bulb will not be nulled, so it can still be excessive. That is why a high value, shown here as 100k (higher if possible), is used to connect Vx to the op-amp to limit the effect at the output. One advantage of this arrangement is that we can monitor Vx while adjusting for the best null. When the twin-T has its best null Vx will be a minimum.
Some further reduction of the bulb distortion can be achieved by passing Vx through a bandpass filter. The next example uses a variation of the Wien network which needs both low source and load impedance. The low load impedance is here provided by the 'virtual earth' input of the op-amp. The source impedance is not so low, so some adjustment of the filter input resistor is needed to compensate. Only a small improvement is expected from this addition. The previous version needs to be tried first to establish how far the '100k' resistor can be increased for optimum results, then the Wien network can be designed to have a similar effect at the frequency of oscillation.
It is tempting to use a further twin-T notch filter here instead of the Wien bandpass, to reject the 3rd harmonic, but the resulting phase shift at the required oscillation frequency may then be a problem, so some further thought is needed. The Wien network has close to zero phase shift at its band centre frequency.
My original idea to make a moderately good generator but filter the output to reject distortion had the big disadvantage that the filter would need to be accurately tuned to the oscillator frequency. With a very high-Q bandpass filter that could be difficult to achieve, and component drift could make readjustment a regular necessity. By including the high-Q filter as the frequency determining part of the generator this problem is avoided. Including the Wien filter as above further reduces any advantage of using a separate output filter.
A Variable Frequency Wien Generator
The problem with the twin-T is that for a variable frequency we need to adjust three resistors or capacitors, and this is made even worse by one of the components being half the impedance of the other two. For variable resistors we need either a three gang potentiometer with unequal track resistances or a four gang with two tracks connected in parallel. I have found 6-gang potentiometers for sale on eBay at very low cost, but these may not be available for long so I want to avoid that problem. Another type of oscillator which can be made with a single low distortion amplifier plus level control is the 'Wien Bridge'. The single amplifier version unfortunately uses both inverting and non-inverting inputs with possible common-mode problems. An alternative using two amplifiers without the common-mode problem is shown next. A conventional NTC thermistor level control is used.
Once more we can apply the 'Linsley Hood' level control method, as shown next, first by adding an adjustment Vr1 to the positive feedback level so that we can adjust the circuit to be close to or just oscillating, then the level control circuit needs only a close to zero output (Vx) to maintain oscillation at the required level, and Vx can again be connected via a high value resistor (e.g. 470k). The maximum output level is adjusted by Vr2. The frequency control dual potentiometer needs well matched tracks, otherwise Vr1 may need adjusting at different frequency settings for best results. This need not be a serious problem, Vr1 could be made a front panel mounted control, and calibrated for a series of commonly used test frequencies where the lowest distortion is needed. Initially the 470k could be a 1M variable control to determine the optimum value by experiment.
Again this is nothing new, something similar was suggested in Wireless World, December 1981, page 53, 'Letters to the Editor' in a letter 'Wien bridge improvement' from Bill Young. The equivalence may not be immediately obvious, and it is described there as an example of a 'Q multiplier'. The point however is that a fixed level of positive feedback is added to reduce the positive feedback needed via the thermistor control path with its inevitable distortion. My own version does have one advantage, that it is easier to 'tweak' for minimum distortion.
One problem with this circuit is that with equal value variable resistors the top amplifier section has a gain of 1/3 at the oscillation frequency, and so the other inverting stage in the loop needs a gain of 3. I want to use a +/- 9V battery supply, and so this will already limit the available output level, and so the fact that a voltage swing 3 times higher than the output is needed at the output of the inverter reduces available output much further. For this reason I decided against the Wien oscillator. It would be possible to take the output from the inverter output to avoid this limitation, but the distortion at that point is higher.
A Variable Frequency State Variable Generator
Applying the same level control method to a state variable oscillator is a slightly different problem. The gain round the feedback loop will always be unity at some frequency, but unless we have perfect integrators and inverter the phase shift will not make the feedback accurately zero phase at that frequency. The level control is therefore required to change the phase rather than the gain. To achieve this we need a variable feedback level from the output of the first integrator, where there is a 90 degree phase shift. Apart from this the same sort of nulled positive and negative feedback can be used. The feedback loop will already be close to oscillation, so only a low level control signal is needed, and maybe this is why the state variable oscillator is sometimes said to be the best performing type. The previous examples of twin-T and Wien oscillators may however prove to be just as good with the suggested trimming.
I have to admit I am not entirely certain whether I got the control circuit phase correct in the next diagram. With loop gain control it is obvious that we need to start with too much loop gain and reduce this when the output level gets too high. Controlling loop phase shifts is, to me at least, not so intuitive. At worst the bulb and 150R would need to be exchanged if I am wrong.
Note that in Part 1 the circuit of my old AFG/3 design had a 10pF trimmer across the 10k overall feedback resistor. I don't remember exactly why I added that, but I guess it was to improve operation at the high frequency end of the range. This may not be necessary using much faster op-amps such as the LM4562, or there may be different problems, so a little experimentation with a trimmer capacitor may be needed to add a little extra phase shift in one direction or the other.
One obvious problem with this circuit is that we are monitoring the signal level after the first integrator, not at the output. With poor control track matching the output level may vary more than we would like as the frequency is adjusted. We could of course use the output of the first integrator as the generator output, but then we lose the additional attenuation of harmonics by the second integrator.
An advantage of the state variable circuit when used with lamp stabilisation is that the lamp distortion is almost entirely third harmonic, and as shown in my AFG/3 circuit there is a simple way to null the third harmonic at the output. For my own applications accurate output level is not really essential, I would normally check the level after every frequency adjustment, so I am considering a version of this circuit for a variable oscillator, with a twin-T fixed frequency circuit for ultra-low distortion testing.